diff --git a/apps/web/src/lib/components/patterns/data-table/app-data-table.svelte b/apps/web/src/lib/components/patterns/data-table/app-data-table.svelte index 561508f..a1560d8 100644 --- a/apps/web/src/lib/components/patterns/data-table/app-data-table.svelte +++ b/apps/web/src/lib/components/patterns/data-table/app-data-table.svelte @@ -73,7 +73,7 @@ $effect(() => { rows; - pageIndex = 0; + if (pageIndex !== 0) pageIndex = 0; }); function toggleSort(col: DataTableColumn) { diff --git a/apps/web/src/routes/modules/+page.svelte b/apps/web/src/routes/modules/+page.svelte index a29dc58..e8d13d8 100644 --- a/apps/web/src/routes/modules/+page.svelte +++ b/apps/web/src/routes/modules/+page.svelte @@ -105,9 +105,19 @@ void queryClient.invalidateQueries({ queryKey: modulesKeys.all }); } - $effect(() => { + function pruneSelectedModuleIds() { const validIds = new Set(rows.map((item) => item.id)); - selectedModuleIds = new Set([...selectedModuleIds].filter((id) => validIds.has(id))); + for (const id of selectedModuleIds) { + if (!validIds.has(id)) { + selectedModuleIds = new Set([...selectedModuleIds].filter((id) => validIds.has(id))); + return; + } + } + } + + $effect(() => { + rows; + pruneSelectedModuleIds(); }); function toggleModuleSelection(id: string) {