feat(#221): wire tagOp URL param from server to SearchFilterBar
Reads ?tagOp=OR from URL in +page.server.ts, passes it to the backend search endpoint, and surfaces it via the filters return. +page.svelte initialises tagOperator state from filters, writes it back to the URL in triggerSearch(), and binds it to SearchFilterBar. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -29,6 +29,7 @@ export async function load({ url, fetch }) {
|
||||
? (rawDir as ValidDir)
|
||||
: 'desc';
|
||||
const tagQ = url.searchParams.get('tagQ') || '';
|
||||
const tagOp = url.searchParams.get('tagOp') === 'OR' ? 'OR' : 'AND';
|
||||
|
||||
const isDashboard = !q && !from && !to && !senderId && !receiverId && !tags.length && !tagQ;
|
||||
|
||||
@@ -48,6 +49,7 @@ export async function load({ url, fetch }) {
|
||||
receiverId: receiverId || undefined,
|
||||
tag: tags.length ? tags : undefined,
|
||||
tagQ: tagQ || undefined,
|
||||
tagOp: tagOp === 'OR' ? 'OR' : undefined,
|
||||
sort,
|
||||
dir: dir || undefined
|
||||
}
|
||||
@@ -147,7 +149,7 @@ export async function load({ url, fetch }) {
|
||||
senderName: senderObj?.displayName ?? '',
|
||||
receiverName: receiverObj?.displayName ?? ''
|
||||
},
|
||||
filters: { q, from, to, senderId, receiverId, tags, sort, dir, tagQ },
|
||||
filters: { q, from, to, senderId, receiverId, tags, sort, dir, tagQ, tagOp },
|
||||
error: null as string | null
|
||||
};
|
||||
} catch (e) {
|
||||
@@ -166,7 +168,7 @@ export async function load({ url, fetch }) {
|
||||
readyDocs: [],
|
||||
weeklyStats: null,
|
||||
initialValues: { senderName: '', receiverName: '' },
|
||||
filters: { q, from, to, senderId, receiverId, tags, sort, dir, tagQ },
|
||||
filters: { q, from, to, senderId, receiverId, tags, sort, dir, tagQ, tagOp },
|
||||
error: 'Daten konnten nicht geladen werden.' as string | null
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user