diff --git a/frontend/src/routes/geschichten/+page.svelte b/frontend/src/routes/geschichten/+page.svelte
index 3e4e681a..35d67301 100644
--- a/frontend/src/routes/geschichten/+page.svelte
+++ b/frontend/src/routes/geschichten/+page.svelte
@@ -3,6 +3,7 @@ import { goto } from '$app/navigation';
import { m } from '$lib/paraglide/messages.js';
import PersonTypeahead from '$lib/person/PersonTypeahead.svelte';
import GeschichteListRow from '$lib/geschichte/GeschichteListRow.svelte';
+import DocumentFilterChip from './DocumentFilterChip.svelte';
import type { PageData } from './$types';
let { data }: { data: PageData } = $props();
@@ -10,11 +11,24 @@ 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);
+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);
url.searchParams.delete('personId');
+ url.searchParams.delete('documentId');
for (const id of personIds) url.searchParams.append('personId', id);
return url.pathname + url.search;
}
@@ -35,6 +49,10 @@ function addPerson(personId: string) {
function removePerson(personId: string) {
goto(rebuildUrl(selectedPersonIds.filter((id) => id !== personId)));
}
+
+function removeDocument() {
+ goto(rebuildUrl(selectedPersonIds));
+}
@@ -76,6 +94,14 @@ function removePerson(personId: string) {
{/each}
+ {#if data.documentFilter}
+
+ {/if}
+