From d154bb4b9c2bad32b9a41f4b13e9ee345a79cb6d Mon Sep 17 00:00:00 2001 From: Marcel Date: Mon, 20 Apr 2026 21:46:06 +0200 Subject: [PATCH] refactor(chronik): replace inline filter switch with filterFeed() Wire the extracted filterFeed function into the displayFeed derived, removing 20 lines of inline switch logic from +page.svelte. Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/routes/chronik/+page.svelte | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/frontend/src/routes/chronik/+page.svelte b/frontend/src/routes/chronik/+page.svelte index 54b64d63..18c5b03f 100644 --- a/frontend/src/routes/chronik/+page.svelte +++ b/frontend/src/routes/chronik/+page.svelte @@ -11,6 +11,7 @@ import ChronikEmptyState from '$lib/components/chronik/ChronikEmptyState.svelte' import ChronikErrorCard from '$lib/components/chronik/ChronikErrorCard.svelte'; import type { components } from '$lib/generated/api'; import type { FilterValue } from './+page.server'; +import { filterFeed } from './feedFilters'; type ActivityFeedItemDTO = components['schemas']['ActivityFeedItemDTO']; @@ -92,28 +93,7 @@ async function onMarkAllRead() { await notificationStore.markAllRead(); } -const displayFeed = $derived( - (() => { - const merged = data.activityFeed; - switch (activeFilter) { - case 'alle': - return merged; - case 'fuer-dich': - return merged.filter((i) => i.kind === 'MENTION_CREATED' || i.youMentioned); - case 'hochgeladen': - return merged.filter((i) => i.kind === 'FILE_UPLOADED'); - case 'transkription': - return merged.filter( - (i) => - i.kind === 'TEXT_SAVED' || - i.kind === 'BLOCK_REVIEWED' || - i.kind === 'ANNOTATION_CREATED' - ); - case 'kommentare': - return merged.filter((i) => i.kind === 'COMMENT_ADDED' || i.kind === 'MENTION_CREATED'); - } - })() -); +const displayFeed = $derived(filterFeed(data.activityFeed, activeFilter)); const isEmpty = $derived(displayFeed.length === 0); const emptyVariant = $derived<'first-run' | 'filter-empty' | 'inbox-zero'>(