diff --git a/src/shared/chrome/RecentActivity.svelte b/src/features/recent/components/HistoryPanel.svelte similarity index 100% rename from src/shared/chrome/RecentActivity.svelte rename to src/features/recent/components/HistoryPanel.svelte diff --git a/src/features/recent/components/Recent.svelte b/src/features/recent/components/Recent.svelte new file mode 100644 index 0000000..532f06a --- /dev/null +++ b/src/features/recent/components/Recent.svelte @@ -0,0 +1,90 @@ + + +
+
+ Recent +
+ + +
+
+ +
+ {#if tab === "updates"} + + {:else} + + {/if} +
+
+ + diff --git a/src/features/updates/components/Updates.svelte b/src/features/recent/components/UpdatesPanel.svelte similarity index 91% rename from src/features/updates/components/Updates.svelte rename to src/features/recent/components/UpdatesPanel.svelte index 5c874e9..8d89e2e 100644 --- a/src/features/updates/components/Updates.svelte +++ b/src/features/recent/components/UpdatesPanel.svelte @@ -4,7 +4,7 @@ import { gql } from "@api/client"; import { GET_RECENTLY_UPDATED, GET_CHAPTERS } from "@api/queries"; import { store, openReader, setActiveManga, addToast } from "@store/state.svelte"; - import { dayLabel, timeAgo } from "@core/util"; + import { dayLabel } from "@core/util"; import { buildReaderChapterList } from "@features/series/lib/chapterList"; import Thumbnail from "@shared/manga/Thumbnail.svelte"; import type { Chapter, Manga } from "@types"; @@ -48,6 +48,24 @@ return Array.from(map.entries()).map(([label, items]) => ({ label, items })) as UpdateGroup[]; }); + const lastUpdatedTs = $derived( + store.lastLibraryRefresh > 0 + ? store.lastLibraryRefresh + : (updates.length > 0 ? fetchedAtMs(updates[0]) : null) + ); + + const lastUpdatedLabel = $derived( + lastUpdatedTs + ? new Date(lastUpdatedTs).toLocaleString("en-US", { + month: "short", + day: "numeric", + year: "numeric", + hour: "numeric", + minute: "2-digit", + }) + : "Never" + ); + function mangaStub(item: RecentUpdate): Manga { return { id: item.manga?.id ?? item.mangaId, @@ -116,7 +134,8 @@
- Updates + Library updates + Last updated: {lastUpdatedLabel}
@@ -231,6 +249,14 @@ text-transform: uppercase; } + .last-updated { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wide); + text-transform: none; + } + .icon-btn { display: flex; align-items: center; diff --git a/src/shared/chrome/Layout.svelte b/src/shared/chrome/Layout.svelte index 19b7c39..a91bd61 100644 --- a/src/shared/chrome/Layout.svelte +++ b/src/shared/chrome/Layout.svelte @@ -1,7 +1,6 @@
@@ -25,12 +24,10 @@ {:else if store.navPage === "library"} - {:else if store.navPage === "updates"} - {:else if store.navPage === "search"} {:else if store.navPage === "history"} - + {:else if store.navPage === "downloads"} {:else if store.navPage === "extensions"} diff --git a/src/shared/chrome/Sidebar.svelte b/src/shared/chrome/Sidebar.svelte index 25060ae..1ba045b 100644 --- a/src/shared/chrome/Sidebar.svelte +++ b/src/shared/chrome/Sidebar.svelte @@ -1,14 +1,13 @@