From d9fdaf5cbb206fdf86c4c76ec60e8cda140c48be Mon Sep 17 00:00:00 2001 From: jramos Date: Thu, 9 Apr 2026 09:56:33 -0600 Subject: [PATCH] fix: move selection useEffects after filtered/addPopover declarations to fix ReferenceError --- .../src/components/pages/ReportingPage.js | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/frontend/src/components/pages/ReportingPage.js b/frontend/src/components/pages/ReportingPage.js index 6b6cbef..2ce14c8 100644 --- a/frontend/src/components/pages/ReportingPage.js +++ b/frontend/src/components/pages/ReportingPage.js @@ -2356,29 +2356,6 @@ export default function VulnerabilityTriagePage({ filterDate, filterEXC }) { fetchQueue(); }, []); // eslint-disable-line - // Prune selection when filters change — keep only IDs still in filtered set - useEffect(() => { - setSelectedIds((prev) => { - if (prev.size === 0) return prev; - const visibleIds = new Set(filtered.map((f) => f.id)); - const next = new Set([...prev].filter((id) => visibleIds.has(id))); - return next.size === prev.size ? prev : next; - }); - }, [filtered]); - - // Escape key clears selection - useEffect(() => { - if (selectedIds.size === 0) return; - const handler = (e) => { - if (e.key === 'Escape' && selectedIds.size > 0 && !addPopover) { - setSelectedIds(new Set()); - setBatchError(null); - } - }; - document.addEventListener('keydown', handler); - return () => document.removeEventListener('keydown', handler); - }, [selectedIds, addPopover]); - // Set/clear a single column filter const setColFilter = useCallback((colKey, vals) => { setColumnFilters((prev) => { @@ -2524,6 +2501,29 @@ export default function VulnerabilityTriagePage({ filterDate, filterEXC }) { setQueueForm({ vendor: '', workflowType: 'FP' }); }, [addPopover, queueForm]); + // Prune selection when filters change — keep only IDs still in filtered set + useEffect(() => { + setSelectedIds((prev) => { + if (prev.size === 0) return prev; + const visibleIds = new Set(filtered.map((f) => f.id)); + const next = new Set([...prev].filter((id) => visibleIds.has(id))); + return next.size === prev.size ? prev : next; + }); + }, [filtered]); + + // Escape key clears selection + useEffect(() => { + if (selectedIds.size === 0) return; + const handler = (e) => { + if (e.key === 'Escape' && selectedIds.size > 0 && !addPopover) { + setSelectedIds(new Set()); + setBatchError(null); + } + }; + document.addEventListener('keydown', handler); + return () => document.removeEventListener('keydown', handler); + }, [selectedIds, addPopover]); + const submitBatch = useCallback(async () => { if (selectedIds.size === 0) return; setBatchSubmitting(true);