mirror of
https://github.com/kmc7468/arkvault.git
synced 2026-02-04 08:06:56 +00:00
파일 페이지에서의 네트워크 호출 최적화
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { untrack } from "svelte";
|
||||
import { get, type Writable } from "svelte/store";
|
||||
import { fileDownloadStatusStore, isFileDownloading, type FileDownloadStatus } from "$lib/stores";
|
||||
import { getDownloadingFiles } from "$lib/modules/file";
|
||||
|
||||
interface Props {
|
||||
onclick: () => void;
|
||||
@@ -9,23 +7,7 @@
|
||||
|
||||
let { onclick }: Props = $props();
|
||||
|
||||
let downloadingFiles: Writable<FileDownloadStatus>[] = $state([]);
|
||||
|
||||
$effect(() => {
|
||||
downloadingFiles = $fileDownloadStatusStore.filter((status) =>
|
||||
isFileDownloading(get(status).status),
|
||||
);
|
||||
return untrack(() => {
|
||||
const unsubscribes = downloadingFiles.map((downloadingFile) =>
|
||||
downloadingFile.subscribe(({ status }) => {
|
||||
if (!isFileDownloading(status)) {
|
||||
downloadingFiles = downloadingFiles.filter((file) => file !== downloadingFile);
|
||||
}
|
||||
}),
|
||||
);
|
||||
return () => unsubscribes.forEach((unsubscribe) => unsubscribe());
|
||||
});
|
||||
});
|
||||
let downloadingFiles = $derived(getDownloadingFiles());
|
||||
</script>
|
||||
|
||||
{#if downloadingFiles.length > 0}
|
||||
|
||||
Reference in New Issue
Block a user