fix: move selection useEffects after filtered/addPopover declarations to fix ReferenceError
This commit is contained in:
@@ -2356,29 +2356,6 @@ export default function VulnerabilityTriagePage({ filterDate, filterEXC }) {
|
|||||||
fetchQueue();
|
fetchQueue();
|
||||||
}, []); // eslint-disable-line
|
}, []); // 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
|
// Set/clear a single column filter
|
||||||
const setColFilter = useCallback((colKey, vals) => {
|
const setColFilter = useCallback((colKey, vals) => {
|
||||||
setColumnFilters((prev) => {
|
setColumnFilters((prev) => {
|
||||||
@@ -2524,6 +2501,29 @@ export default function VulnerabilityTriagePage({ filterDate, filterEXC }) {
|
|||||||
setQueueForm({ vendor: '', workflowType: 'FP' });
|
setQueueForm({ vendor: '', workflowType: 'FP' });
|
||||||
}, [addPopover, queueForm]);
|
}, [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 () => {
|
const submitBatch = useCallback(async () => {
|
||||||
if (selectedIds.size === 0) return;
|
if (selectedIds.size === 0) return;
|
||||||
setBatchSubmitting(true);
|
setBatchSubmitting(true);
|
||||||
|
|||||||
Reference in New Issue
Block a user