From 6491e4fd8cf0081fdacccf560db3644ca981657c Mon Sep 17 00:00:00 2001 From: Davide Scaini Date: Mon, 20 Apr 2026 17:12:50 +0200 Subject: [PATCH] fix: show total activity count in global feed counter The counter now shows "50 of 16398 activities" using the total from feed.json, matching the previous behaviour where all activities were loaded upfront. --- site/src/components/ActivityFeed.svelte | 9 ++++++++- site/src/lib/dataloader.ts | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/site/src/components/ActivityFeed.svelte b/site/src/components/ActivityFeed.svelte index ff6af52..77f4e56 100644 --- a/site/src/components/ActivityFeed.svelte +++ b/site/src/components/ActivityFeed.svelte @@ -48,6 +48,8 @@ /** Remaining combined-feed pages (multi-user global feed). */ let feedNextPage = 0; let feedTotalPages = 0; + /** Grand total from feed.json — shows instance-wide count even before all pages are loaded. */ + let totalActivities = 0; /** Logged-in handle — resolved async via bincio:me event. */ let me: string = ''; @@ -123,6 +125,7 @@ const combined = await loadCombinedFeed(base); if (combined) { all = combined.activities; + totalActivities = combined.totalActivities; feedTotalPages = combined.remainingPages + 1; feedNextPage = combined.remainingPages > 0 ? 2 : 0; loading = false; @@ -175,7 +178,11 @@ {/each} {#if all.length > 0} - {filtered.length} {filtered.length === 1 ? 'activity' : 'activities'} + {#if totalActivities > filtered.length} + {filtered.length} of {totalActivities} activities + {:else} + {filtered.length} {filtered.length === 1 ? 'activity' : 'activities'} + {/if} {/if} diff --git a/site/src/lib/dataloader.ts b/site/src/lib/dataloader.ts index e2d7bdd..c1da75e 100644 --- a/site/src/lib/dataloader.ts +++ b/site/src/lib/dataloader.ts @@ -269,12 +269,13 @@ interface FeedPage { */ export async function loadCombinedFeed( baseUrl: string, -): Promise<{ activities: ActivitySummary[]; remainingPages: number } | null> { +): Promise<{ activities: ActivitySummary[]; remainingPages: number; totalActivities: number } | null> { try { const feed = await fetchJSON(`${baseUrl}data/feed.json`); return { activities: feed.activities ?? [], remainingPages: (feed.total_pages ?? 1) - 1, + totalActivities: feed.total_activities ?? 0, }; } catch { return null;