fix(bulk-edit): auto-clear selection store when leaving /documents and /enrich
Felix C4 — bulkSelectionStore is module-singleton; before this change it silently followed the user from /documents to /persons / /admin / etc., then reappeared as a stale count when they wandered back. Root +layout.svelte now watches page.url.pathname and clears the store the moment the user leaves the two routes that surface BulkSelectionBar. Refs #225, PR #331 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,7 @@ import AppNav from './AppNav.svelte';
|
||||
import UserMenu from './UserMenu.svelte';
|
||||
import ConfirmDialog from '$lib/components/ConfirmDialog.svelte';
|
||||
import { provideConfirmService } from '$lib/services/confirm.svelte.js';
|
||||
import { bulkSelectionStore } from '$lib/stores/bulkSelection.svelte';
|
||||
|
||||
let { children, data } = $props();
|
||||
|
||||
@@ -17,6 +18,22 @@ let { children, data } = $props();
|
||||
// ConfirmDialog below reads it via getConfirmService() and renders the <dialog>.
|
||||
provideConfirmService();
|
||||
|
||||
// Auto-clear the bulk-selection store when the user leaves the routes that
|
||||
// surface the BulkSelectionBar. Without this the selection silently follows
|
||||
// the user to /persons / /admin etc. and reappears as a stale 3-doc count
|
||||
// when they wander back to /documents — Felix C4 on PR #331.
|
||||
$effect(() => {
|
||||
const path = page.url.pathname;
|
||||
const inBulkContext =
|
||||
path === '/documents' ||
|
||||
path.startsWith('/documents/') ||
|
||||
path === '/enrich' ||
|
||||
path.startsWith('/enrich/');
|
||||
if (!inBulkContext && bulkSelectionStore.size > 0) {
|
||||
bulkSelectionStore.clear();
|
||||
}
|
||||
});
|
||||
|
||||
const isAdmin = $derived(
|
||||
data?.user?.groups?.some((g: { permissions: string[] }) => g.permissions.includes('ADMIN'))
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user