diff --git a/src/lib/components/molecules/Gallery/Thumbnail.svelte b/src/lib/components/molecules/FileThumbnailButton.svelte similarity index 100% rename from src/lib/components/molecules/Gallery/Thumbnail.svelte rename to src/lib/components/molecules/FileThumbnailButton.svelte diff --git a/src/lib/components/molecules/Gallery/index.ts b/src/lib/components/molecules/Gallery/index.ts deleted file mode 100644 index 9a269ab..0000000 --- a/src/lib/components/molecules/Gallery/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as Gallery } from "./Gallery.svelte"; diff --git a/src/lib/components/molecules/index.ts b/src/lib/components/molecules/index.ts index b11ed5f..b71affe 100644 --- a/src/lib/components/molecules/index.ts +++ b/src/lib/components/molecules/index.ts @@ -2,7 +2,7 @@ export * from "./ActionModal.svelte"; export { default as ActionModal } from "./ActionModal.svelte"; export * from "./Categories"; export { default as Categories } from "./Categories"; -export * from "./Gallery"; +export { default as FileThumbnailButton } from "./FileThumbnailButton.svelte"; export { default as IconEntryButton } from "./IconEntryButton.svelte"; export * from "./labels"; export { default as SubCategories } from "./SubCategories.svelte"; diff --git a/src/lib/components/molecules/Gallery/Gallery.svelte b/src/lib/components/organisms/Gallery.svelte similarity index 96% rename from src/lib/components/molecules/Gallery/Gallery.svelte rename to src/lib/components/organisms/Gallery.svelte index 1bcb335..9f80846 100644 --- a/src/lib/components/molecules/Gallery/Gallery.svelte +++ b/src/lib/components/organisms/Gallery.svelte @@ -2,9 +2,9 @@ import { createWindowVirtualizer } from "@tanstack/svelte-virtual"; import { untrack } from "svelte"; import { get, type Writable } from "svelte/store"; + import { FileThumbnailButton } from "$lib/components/molecules"; import type { FileInfo } from "$lib/modules/filesystem"; import { formatDate, formatDateSortable, SortBy, sortEntries } from "$lib/utils"; - import Thumbnail from "./Thumbnail.svelte"; interface Props { files: Writable[]; @@ -105,7 +105,7 @@ {:else}
{#each row.items as { info }} - + {/each}
{/if} diff --git a/src/lib/components/organisms/index.ts b/src/lib/components/organisms/index.ts index 64f9861..9687bfe 100644 --- a/src/lib/components/organisms/index.ts +++ b/src/lib/components/organisms/index.ts @@ -1,3 +1,4 @@ export * from "./Category"; export { default as Category } from "./Category"; +export { default as Gallery } from "./Gallery.svelte"; export * from "./modals"; diff --git a/src/routes/(fullscreen)/gallery/+page.svelte b/src/routes/(fullscreen)/gallery/+page.svelte index 484c734..1826c47 100644 --- a/src/routes/(fullscreen)/gallery/+page.svelte +++ b/src/routes/(fullscreen)/gallery/+page.svelte @@ -2,7 +2,8 @@ import type { Writable } from "svelte/store"; import { goto } from "$app/navigation"; import { FullscreenDiv } from "$lib/components/atoms"; - import { Gallery, TopBar } from "$lib/components/molecules"; + import { TopBar } from "$lib/components/molecules"; + import { Gallery } from "$lib/components/organisms"; import { getFileInfo, type FileInfo } from "$lib/modules/filesystem"; import { masterKeyStore } from "$lib/stores"; diff --git a/src/routes/(main)/home/+page.svelte b/src/routes/(main)/home/+page.svelte index 73d68b7..8393641 100644 --- a/src/routes/(main)/home/+page.svelte +++ b/src/routes/(main)/home/+page.svelte @@ -1,3 +1,35 @@ -
-

아직 개발 중이에요.

+ + + + + + +
+

ArkVault

+
+ goto("/gallery")} class="w-full"> +

사진 및 동영상

+
+
+ {#each files as file} + goto(`/file/${id}`)} /> + {/each} +
+
diff --git a/src/routes/(main)/home/service.ts b/src/routes/(main)/home/service.ts new file mode 100644 index 0000000..50dc652 --- /dev/null +++ b/src/routes/(main)/home/service.ts @@ -0,0 +1,10 @@ +import { getAllFileInfos } from "$lib/indexedDB"; + +export const requestFreshFilesRetrieval = async (limit = 8) => { + const files = await getAllFileInfos(); + files.sort( + (a, b) => + (b.createdAt ?? b.lastModifiedAt).getTime() - (a.createdAt ?? a.lastModifiedAt).getTime(), + ); + return files.slice(0, limit); +};