diff --git a/frontend/src/routes/geschichten/+page.svelte b/frontend/src/routes/geschichten/+page.svelte index 7ced4ade..9f9b4b26 100644 --- a/frontend/src/routes/geschichten/+page.svelte +++ b/frontend/src/routes/geschichten/+page.svelte @@ -4,6 +4,7 @@ import { m } from '$lib/paraglide/messages.js'; import { plainExcerpt } from '$lib/shared/utils/extractText'; import { formatDate } from '$lib/shared/utils/date'; import PersonTypeahead from '$lib/person/PersonTypeahead.svelte'; +import DocumentFilterChip from './DocumentFilterChip.svelte'; import type { PageData } from './$types'; let { data }: { data: PageData } = $props(); @@ -11,7 +12,19 @@ let { data }: { data: PageData } = $props(); let showPersonPicker = $state(false); const selectedPersonIds = $derived(data.personFilters.map((p) => p.id!)); -const hasFilters = $derived(data.personFilters.length > 0 || !!data.documentFilter); +const hasFilters = $derived(data.personFilters.length > 0 || data.documentFilter !== null); + +const emptyMessage = $derived.by(() => { + if (data.personFilters.length > 0) { + return m.geschichten_empty_for_persons({ + names: data.personFilters.map((p) => p.displayName).join(' & ') + }); + } + if (data.documentFilter) { + return m.geschichten_empty_for_document(); + } + return m.geschichten_empty_no_filter(); +}); function rebuildUrl(personIds: string[]) { const url = new URL(window.location.href); @@ -38,6 +51,10 @@ function removePerson(personId: string) { goto(rebuildUrl(selectedPersonIds.filter((id) => id !== personId))); } +function removeDocument() { + goto(rebuildUrl(selectedPersonIds)); +} + function authorName(g: { author?: { firstName?: string; lastName?: string; email: string } }) { const a = g.author; if (!a) return ''; @@ -88,6 +105,14 @@ function publishedAt(g: { publishedAt?: string }): string | null { {/each} + {#if data.documentFilter} + + {/if} +