diff --git a/frontend/src/lib/components/stories/AllStoriesArchive.svelte b/frontend/src/lib/components/stories/AllStoriesArchive.svelte index 3ff42dd..8629afb 100644 --- a/frontend/src/lib/components/stories/AllStoriesArchive.svelte +++ b/frontend/src/lib/components/stories/AllStoriesArchive.svelte @@ -32,6 +32,7 @@ let groups = $state([]); let loading = $state(false); const previews = $state>({}); + const expanded = $state>({}); let token = 0; let viewerOpen = $state(false); @@ -110,12 +111,17 @@ for (const key of Object.keys(previews)) { delete previews[Number(key)]; } + for (const key of Object.keys(expanded)) { + delete expanded[Number(key)]; + } load().catch(() => undefined); }); }); $effect(() => { - const list = groups.flatMap((group) => group.stories); + const list = groups + .filter((group) => expanded[group.peerId]) + .flatMap((group) => group.stories); let active = true; untrack(() => { for (const item of list) { @@ -156,6 +162,10 @@ viewerIndex = index; viewerOpen = true; } + + function toggle(peerId: number) { + expanded[peerId] = !expanded[peerId]; + } {#if groups.length === 0} @@ -168,15 +178,25 @@ {#each groups as group (group.peerId)}
- - {group.name} - {group.stories.length} +
-
- {#each group.stories as item, index (item.story_id)} - - {/each} -
+ {#if item.views} + + {item.views} + + {/if} + + {/each} + + {/if}
{/each} @@ -249,6 +271,31 @@ padding: 0.625rem 0.75rem; } + .group-toggle { + display: flex; + flex: 1; + align-items: center; + gap: 0.625rem; + + min-width: 0; + padding: 0; + border: 0; + + text-align: left; + cursor: pointer; + background: transparent; + } + + .chevron { + display: flex; + color: var(--color-text-secondary); + transition: transform 0.2s ease; + + &.open { + transform: rotate(180deg); + } + } + .group-name { flex: 1; overflow: hidden; diff --git a/frontend/src/lib/components/ui/ContextMenu.svelte b/frontend/src/lib/components/ui/ContextMenu.svelte index c601a21..d0179bf 100644 --- a/frontend/src/lib/components/ui/ContextMenu.svelte +++ b/frontend/src/lib/components/ui/ContextMenu.svelte @@ -1,3 +1,9 @@ + +