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">
import type { Page } from '$lib/types';
import { onMount } from 'svelte';
import TextBoxes from './TextBoxes.svelte';
export let page: Page;
export let src: File;
$: url = `url(${URL.createObjectURL(src)})`;
$: url = src ? `url(${URL.createObjectURL(src)})` : '';
</script>
<div

View File

@@ -2,13 +2,17 @@
import { AccordionItem, Button } from 'flowbite-svelte';
import { db } from '$lib/catalog/db';
import { promptConfirmation } from '$lib/util';
import { goto } from '$app/navigation';
function onClear() {
promptConfirmation('Are you sure you want to clear your catalog?', () => db.catalog.clear());
goto('/');
}
</script>
<AccordionItem>
<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>

View File

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