diff --git a/src/routes/(fullscreen)/auth/login/+page.svelte b/src/routes/(fullscreen)/auth/login/+page.svelte index b4f3d32..8ec1742 100644 --- a/src/routes/(fullscreen)/auth/login/+page.svelte +++ b/src/routes/(fullscreen)/auth/login/+page.svelte @@ -5,20 +5,20 @@ import { ForceLoginModal } from "$lib/components/organisms"; import { clientKeyStore, masterKeyStore } from "$lib/stores"; import { - requestLogout, requestLogin, requestClientRegistrationAndSessionUpgrade, requestMasterKeyDownload, requestDeletedFilesCleanup, + requestLogout, } from "./service"; let { data } = $props(); - let isForceLoginModalOpen = $state(false); - let email = $state(""); let password = $state(""); + let isForceLoginModalOpen = $state(false); + const redirect = async (url: string) => { return await goto(`${url}?redirect=${encodeURIComponent(data.redirectPath)}`); }; diff --git a/src/routes/(fullscreen)/key/generate/+page.svelte b/src/routes/(fullscreen)/key/generate/+page.svelte index 1155577..6f7609c 100644 --- a/src/routes/(fullscreen)/key/generate/+page.svelte +++ b/src/routes/(fullscreen)/key/generate/+page.svelte @@ -61,19 +61,6 @@ }); }; - const importKeys = async () => { - const file = fileInput?.files?.[0]; - if (!file) return; - - if (await importClientKeys(await file.text())) { - await upgradeSession(false); - } else { - // TODO: Error Handling - } - - fileInput!.value = ""; - }; - const upgradeSession = async (force: boolean) => { const [upgradeRes, upgradeError] = await requestClientRegistrationAndSessionUpgrade( $clientKeyStore!, @@ -109,6 +96,19 @@ await goto("/client/pending?redirect=" + encodeURIComponent(data.redirectPath)); }; + const importKeys = async () => { + const file = fileInput?.files?.[0]; + if (!file) return; + + if (await importClientKeys(await file.text())) { + await upgradeSession(false); + } else { + // TODO: Error Handling + } + + fileInput!.value = ""; + }; + onMount(async () => { if ($clientKeyStore) { await goto(data.redirectPath, { replaceState: true }); diff --git a/src/routes/(fullscreen)/settings/thumbnail/service.svelte.ts b/src/routes/(fullscreen)/settings/thumbnail/service.svelte.ts index 6bb37b1..d8f288c 100644 --- a/src/routes/(fullscreen)/settings/thumbnail/service.svelte.ts +++ b/src/routes/(fullscreen)/settings/thumbnail/service.svelte.ts @@ -25,7 +25,7 @@ const workingFiles = new Map>(); let queue: (() => void)[] = []; let memoryUsage = 0; -const MEMORY_LIMIT = 100 * 1024 * 1024; // 100 MiB +const memoryLimit = 100 * 1024 * 1024; // 100 MiB export const persistentStates = $state({ files: [] as File[], @@ -45,10 +45,7 @@ const generateThumbnail = limitFunction( status.set("generating"); const thumbnail = await doGenerateThumbnail(fileBuffer, fileType); - if (!thumbnail) { - status.set("error"); - return null; - } + if (!thumbnail) return null; const thumbnailBuffer = await thumbnail.arrayBuffer(); const thumbnailEncrypted = await encryptData(thumbnailBuffer, dataKey); @@ -101,7 +98,7 @@ const enqueue = async ( }); if (priority) { - queue = [() => resolver!(), ...queue]; + queue = [resolver!, ...queue]; } else { queue.push(resolver!); } @@ -116,7 +113,7 @@ export const requestThumbnailGeneration = async (fileInfo: FileInfo) => { if (workingFiles.values().some((status) => get(status) !== "error")) { await enqueue(status, fileInfo); } - while (memoryUsage >= MEMORY_LIMIT) { + while (memoryUsage >= memoryLimit) { await enqueue(status, fileInfo, true); } @@ -136,7 +133,7 @@ export const requestThumbnailGeneration = async (fileInfo: FileInfo) => { fileSize = file.byteLength; memoryUsage += fileSize; - if (memoryUsage < MEMORY_LIMIT) { + if (memoryUsage < memoryLimit) { queue.shift()?.(); } @@ -146,8 +143,10 @@ export const requestThumbnailGeneration = async (fileInfo: FileInfo) => { fileInfo.contentType, fileInfo.dataKey!, ); - if (!thumbnail) return; - if (!(await requestThumbnailUpload(status, fileInfo.id, fileInfo.dataKeyVersion!, thumbnail))) { + if ( + !thumbnail || + !(await requestThumbnailUpload(status, fileInfo.id, fileInfo.dataKeyVersion!, thumbnail)) + ) { status.set("error"); } } catch {