Fix chrome document scanning

This commit is contained in:
ZXY101
2023-09-29 12:40:01 +02:00
parent 89ca673b2d
commit 1fcb64b7fd
3 changed files with 24 additions and 11 deletions

View File

@@ -1,12 +1,11 @@
<script lang="ts"> <script lang="ts">
import type { Page } from '$lib/types'; import type { Page } from '$lib/types';
import { onMount } from 'svelte';
import TextBoxes from './TextBoxes.svelte'; import TextBoxes from './TextBoxes.svelte';
export let page: Page; export let page: Page;
export let src: File; export let src: File;
$: url = `url(${URL.createObjectURL(src)})`; $: url = src ? `url(${URL.createObjectURL(src)})` : '';
</script> </script>
<div <div

View File

@@ -2,13 +2,17 @@
import { AccordionItem, Button } from 'flowbite-svelte'; import { AccordionItem, Button } from 'flowbite-svelte';
import { db } from '$lib/catalog/db'; import { db } from '$lib/catalog/db';
import { promptConfirmation } from '$lib/util'; import { promptConfirmation } from '$lib/util';
import { goto } from '$app/navigation';
function onClear() { function onClear() {
promptConfirmation('Are you sure you want to clear your catalog?', () => db.catalog.clear()); promptConfirmation('Are you sure you want to clear your catalog?', () => db.catalog.clear());
goto('/');
} }
</script> </script>
<AccordionItem> <AccordionItem>
<span slot="header">Catalog settings</span> <span slot="header">Catalog settings</span>
<Button on:click={onClear} outline color="red">Clear catalog</Button> <div class="flex flex-col">
<Button on:click={onClear} outline color="red">Clear catalog</Button>
</div>
</AccordionItem> </AccordionItem>

View File

@@ -64,16 +64,24 @@ export async function scanFiles(item: FileSystemEntry, files: Promise<File | und
if (item.isDirectory) { if (item.isDirectory) {
const directoryReader = (item as FileSystemDirectoryEntry).createReader(); const directoryReader = (item as FileSystemDirectoryEntry).createReader();
await new Promise<void>((resolve) => { await new Promise<void>((resolve) => {
directoryReader.readEntries(async (entries) => { function readEntries() {
for (const entry of entries) { directoryReader.readEntries(async (entries) => {
if (entry.isFile) { if (entries.length > 0) {
files.push(getFile(entry as FileSystemFileEntry)); for (const entry of entries) {
if (entry.isFile) {
files.push(getFile(entry as FileSystemFileEntry));
} else {
await scanFiles(entry, files);
}
}
readEntries()
} else { } else {
await scanFiles(entry, files); resolve();
} }
} });
resolve(); }
});
readEntries()
}); });
} }
} }
@@ -187,5 +195,7 @@ export async function processFiles(files: File[]) {
showSnackbar('Catalog updated successfully'); showSnackbar('Catalog updated successfully');
} }
} else {
showSnackbar('Missing .mokuro file');
} }
} }