사소한 리팩토링 3

This commit is contained in:
static
2025-07-12 05:58:35 +09:00
parent 4679b1d6bd
commit 89921ef1df
3 changed files with 25 additions and 26 deletions

View File

@@ -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)}`);
};

View File

@@ -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 });

View File

@@ -25,7 +25,7 @@ const workingFiles = new Map<number, Writable<GenerationStatus>>();
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 {