mirror of
https://github.com/kmc7468/arkvault.git
synced 2026-02-03 23:56:53 +00:00
사소한 버그 수정
This commit is contained in:
@@ -96,6 +96,10 @@ export const deleteFileInfo = async (id: number) => {
|
||||
await filesystem.file.delete(id);
|
||||
};
|
||||
|
||||
export const bulkDeleteFileInfos = async (ids: number[]) => {
|
||||
await filesystem.file.bulkDelete(ids);
|
||||
};
|
||||
|
||||
export const deleteDanglingFileInfos = async (parentId: DirectoryId, validIds: Set<number>) => {
|
||||
await filesystem.file
|
||||
.where({ parentId })
|
||||
|
||||
@@ -126,12 +126,12 @@ const cache = new FilesystemCache<number, MaybeFileInfo>({
|
||||
);
|
||||
|
||||
const existingIds = new Set(filesRaw.map(({ id }) => id));
|
||||
const deletedIds = idsArray.filter((id) => !existingIds.has(id));
|
||||
|
||||
void IndexedDB.bulkDeleteFileInfos(deletedIds);
|
||||
return new Map<number, MaybeFileInfo>([
|
||||
...bulkStoreToIndexedDB(files),
|
||||
...idsArray
|
||||
.filter((id) => !existingIds.has(id))
|
||||
.map((id) => [id, { id, exists: false }] as const),
|
||||
...deletedIds.map((id) => [id, { id, exists: false }] as const),
|
||||
]);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -24,8 +24,9 @@
|
||||
.filter((file) => file.exists)
|
||||
.filter(
|
||||
(file) => file.contentType.startsWith("image/") || file.contentType.startsWith("video/"),
|
||||
),
|
||||
(file) => formatDateSortable(file.createdAt ?? file.lastModifiedAt),
|
||||
)
|
||||
.map((file) => ({ ...file, date: file.createdAt ?? file.lastModifiedAt })),
|
||||
(file) => formatDateSortable(file.date),
|
||||
);
|
||||
return Array.from(groups.entries())
|
||||
.sort(([dateA], [dateB]) => dateB.localeCompare(dateA))
|
||||
@@ -34,7 +35,7 @@
|
||||
return [
|
||||
{
|
||||
type: "header",
|
||||
label: formatDate(sortedEntries[0]!.createdAt ?? sortedEntries[0]!.lastModifiedAt),
|
||||
label: formatDate(sortedEntries[0]!.date),
|
||||
},
|
||||
...Array.from({ length: Math.ceil(sortedEntries.length / 4) }, (_, i) => {
|
||||
const start = i * 4;
|
||||
|
||||
@@ -2,22 +2,13 @@
|
||||
import { onMount } from "svelte";
|
||||
import { goto } from "$app/navigation";
|
||||
import { EntryButton, FileThumbnailButton } from "$lib/components/atoms";
|
||||
import { bulkGetFileInfo, type MaybeFileInfo } from "$lib/modules/filesystem";
|
||||
import { masterKeyStore } from "$lib/stores";
|
||||
import { type SummarizedFileInfo } from "$lib/modules/filesystem";
|
||||
import { requestFreshMediaFilesRetrieval } from "./service";
|
||||
|
||||
let mediaFiles: MaybeFileInfo[] = $state([]);
|
||||
let mediaFiles: SummarizedFileInfo[] = $state([]);
|
||||
|
||||
onMount(async () => {
|
||||
const files = await requestFreshMediaFilesRetrieval();
|
||||
mediaFiles = Array.from(
|
||||
(
|
||||
await bulkGetFileInfo(
|
||||
files.map(({ id }) => id),
|
||||
$masterKeyStore?.get(1)?.key!,
|
||||
)
|
||||
).values(),
|
||||
);
|
||||
mediaFiles = await requestFreshMediaFilesRetrieval();
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -34,9 +25,7 @@
|
||||
{#if mediaFiles.length > 0}
|
||||
<div class="grid grid-cols-4 gap-2 p-2">
|
||||
{#each mediaFiles as file (file.id)}
|
||||
{#if file.exists}
|
||||
<FileThumbnailButton info={file} onclick={({ id }) => goto(`/file/${id}`)} />
|
||||
{/if}
|
||||
{/each}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
Reference in New Issue
Block a user