Files
familienarchiv/frontend/src/routes/documents/theme-chip-removal.ts
2026-06-06 23:40:33 +02:00

27 lines
958 B
TypeScript

import type { components } from '$lib/generated/api';
type NlQueryInterpretation = components['schemas']['NlQueryInterpretation'];
export function buildThemeRemovalUrl(
interp: NlQueryInterpretation,
removedTagName: string
): string {
const remaining = interp.resolvedTags.filter((t) => t.name !== removedTagName);
const params = new URLSearchParams();
const resolved = interp.resolvedPersons;
if (resolved.length >= 1) params.set('senderId', resolved[0].id);
if (resolved.length >= 2) params.set('receiverId', resolved[1].id);
if (interp.dateFrom) params.set('from', interp.dateFrom);
if (interp.dateTo) params.set('to', interp.dateTo);
if (interp.keywordsApplied && interp.keywords.length > 0) {
params.set('q', interp.keywords.join(' '));
}
remaining.forEach((tag) => params.append('tag', tag.name));
if (remaining.length > 0) params.set('tagOp', 'OR');
const qs = params.toString();
return qs ? `/documents?${qs}` : '/documents';
}