mirror of
https://github.com/kmc7468/arkvault.git
synced 2026-02-04 08:06:56 +00:00
파일이 다운로드/업로드된 직후에 다운로드/업로드 페이지의 목록에서 바로 사라지던 버그 수정
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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}
|
||||||
{/each}
|
<File state={downloadingFiles[index]!} info={file} />
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
{/await}
|
{/await}
|
||||||
</FullscreenDiv>
|
</FullscreenDiv>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user