mirror of
https://github.com/kmc7468/arkvault.git
synced 2025-12-12 21:08:46 +00:00
사소한 리팩토링 3
This commit is contained in:
@@ -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)}`);
|
||||
};
|
||||
|
||||
@@ -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 });
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user