파일이 다운로드/업로드된 직후에 다운로드/업로드 페이지의 목록에서 바로 사라지던 버그 수정

This commit is contained in:
static
2025-12-31 01:32:54 +09:00
parent 26323c2d4d
commit 7b666cf692
3 changed files with 14 additions and 14 deletions

View File

@@ -45,7 +45,7 @@ export const clearDownloadedFiles = () => {
const requestFileDownload = limitFunction( const requestFileDownload = limitFunction(
async (state: FileDownloadState, id: number) => { async (state: FileDownloadState, id: number) => {
state.status = "download-pending"; state.status = "downloading";
const res = await axios.get(`/api/file/${id}/download`, { const res = await axios.get(`/api/file/${id}/download`, {
responseType: "arraybuffer", responseType: "arraybuffer",

View File

@@ -1,18 +1,14 @@
<script lang="ts"> <script lang="ts">
import { FullscreenDiv } from "$lib/components/atoms"; import { FullscreenDiv } from "$lib/components/atoms";
import { TopBar } from "$lib/components/molecules"; import { TopBar } from "$lib/components/molecules";
import { getFileInfo } from "$lib/modules/filesystem";
import { getDownloadingFiles, clearDownloadedFiles } from "$lib/modules/file"; import { getDownloadingFiles, clearDownloadedFiles } from "$lib/modules/file";
import { getFileInfo } from "$lib/modules/filesystem";
import { masterKeyStore } from "$lib/stores"; import { masterKeyStore } from "$lib/stores";
import File from "./File.svelte"; import File from "./File.svelte";
let downloadingFilesPromise = $derived( const downloadingFiles = getDownloadingFiles();
Promise.all( const filesPromise = $derived(
getDownloadingFiles().map(async (file) => ({ Promise.all(downloadingFiles.map(({ id }) => getFileInfo(id, $masterKeyStore?.get(1)?.key!))),
state: file,
fileInfo: await getFileInfo(file.id, $masterKeyStore?.get(1)?.key!),
})),
),
); );
$effect(() => clearDownloadedFiles); $effect(() => clearDownloadedFiles);
@@ -24,9 +20,11 @@
<TopBar /> <TopBar />
<FullscreenDiv> <FullscreenDiv>
{#await downloadingFilesPromise then downloadingFiles} {#await filesPromise then files}
{#each downloadingFiles as { state, fileInfo }} <div class="space-y-2 pb-4">
<File {state} info={fileInfo} /> {#each files as file, index}
<File state={downloadingFiles[index]!} info={file} />
{/each} {/each}
</div>
{/await} {/await}
</FullscreenDiv> </FullscreenDiv>

View File

@@ -4,6 +4,8 @@
import { getUploadingFiles, clearUploadedFiles } from "$lib/modules/file"; import { getUploadingFiles, clearUploadedFiles } from "$lib/modules/file";
import File from "./File.svelte"; import File from "./File.svelte";
const uploadingFiles = getUploadingFiles();
$effect(() => clearUploadedFiles); $effect(() => clearUploadedFiles);
</script> </script>
@@ -14,7 +16,7 @@
<TopBar /> <TopBar />
<FullscreenDiv> <FullscreenDiv>
<div class="space-y-2 pb-4"> <div class="space-y-2 pb-4">
{#each getUploadingFiles() as file} {#each uploadingFiles as file}
<File state={file} /> <File state={file} />
{/each} {/each}
</div> </div>