mirror of
https://github.com/bunny-lab-io/Borealis.git
synced 2025-12-15 16:55:48 -07:00
Fixed Scheduled Job List Checkboxes Automatically Unchecking Themselves
This commit is contained in:
@@ -174,8 +174,16 @@ export default function ScheduledJobsList({ onCreateJob, onEditJob, refreshToken
|
|||||||
const gridApiRef = useRef(null);
|
const gridApiRef = useRef(null);
|
||||||
|
|
||||||
const deriveRowKey = useCallback((row, index = "") => {
|
const deriveRowKey = useCallback((row, index = "") => {
|
||||||
const candidate = row?.id ?? row?.name ?? index ?? "";
|
if (row && row.id != null && row.id !== "") {
|
||||||
return String(candidate);
|
return String(row.id);
|
||||||
|
}
|
||||||
|
if (row && row.name) {
|
||||||
|
return String(row.name);
|
||||||
|
}
|
||||||
|
if (index !== undefined && index !== null && index !== "") {
|
||||||
|
return `__row_${index}`;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const assembliesCellRenderer = useCallback((params) => {
|
const assembliesCellRenderer = useCallback((params) => {
|
||||||
@@ -471,13 +479,13 @@ export default function ScheduledJobsList({ onCreateJob, onEditJob, refreshToken
|
|||||||
const api = gridApiRef.current;
|
const api = gridApiRef.current;
|
||||||
if (!api) return;
|
if (!api) return;
|
||||||
api.forEachNode((node) => {
|
api.forEachNode((node) => {
|
||||||
const nodeId = String(node?.id ?? "");
|
const nodeKey = deriveRowKey(node?.data, node?.rowIndex);
|
||||||
const shouldSelect = selectedIds.has(nodeId);
|
const shouldSelect = nodeKey && selectedIds.has(nodeKey);
|
||||||
if (node.isSelected() !== shouldSelect) {
|
if (node.isSelected() !== shouldSelect) {
|
||||||
node.setSelected(shouldSelect);
|
node.setSelected(shouldSelect);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}, [filteredRows, selectedIds]);
|
}, [deriveRowKey, filteredRows, selectedIds]);
|
||||||
|
|
||||||
const anySelected = selectedIds.size > 0;
|
const anySelected = selectedIds.size > 0;
|
||||||
|
|
||||||
@@ -487,12 +495,13 @@ export default function ScheduledJobsList({ onCreateJob, onEditJob, refreshToken
|
|||||||
const selectedNodes = api.getSelectedNodes();
|
const selectedNodes = api.getSelectedNodes();
|
||||||
const next = new Set();
|
const next = new Set();
|
||||||
selectedNodes.forEach((node) => {
|
selectedNodes.forEach((node) => {
|
||||||
if (node?.id != null) {
|
const nodeKey = deriveRowKey(node?.data, node?.rowIndex);
|
||||||
next.add(String(node.id));
|
if (nodeKey) {
|
||||||
|
next.add(nodeKey);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
setSelectedIds(next);
|
setSelectedIds(next);
|
||||||
}, []);
|
}, [deriveRowKey]);
|
||||||
|
|
||||||
const getRowId = useCallback(
|
const getRowId = useCallback(
|
||||||
(params) => deriveRowKey(params?.data, params?.rowIndex),
|
(params) => deriveRowKey(params?.data, params?.rowIndex),
|
||||||
|
|||||||
Reference in New Issue
Block a user