fix(documents): sync filter display state with URL on navigation
Three root causes prevented filters from reflecting the URL after SvelteKit client-side navigation: 1. +page.server.ts now resolves sender/receiver display names in parallel with the document search (UUID validation + silent 404 drop), so initialSenderName / initialReceiverName land in server data ready for the UI to use. 2. +page.svelte passes initialSenderName, initialReceiverName, and navKey (incremented via untrack on every navigation) down to SearchFilterBar. The untrack() prevents the effect from re-running due to its own navKey write. 3. SearchFilterBar forwards navKey as resetKey to each PersonTypeahead, which already had a void resetKey guard added in the previous commit. Together these ensure that after navigating to /documents?senderId=<uuid> the typeahead shows the person's display name, and clicking × reset clears it. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -47,7 +47,6 @@ let {
|
||||
|
||||
// searchTerm must be both prop-derived AND locally writable (user typing), so $state +
|
||||
// $effect is the correct pattern here — writable $derived is read-only and won't work.
|
||||
// eslint-disable-next-line svelte/prefer-writable-derived
|
||||
let searchTerm = $state(initialName);
|
||||
|
||||
// Sync display text when initialName changes OR when resetKey increments (navigation reset).
|
||||
|
||||
Reference in New Issue
Block a user