From ededeeee00ac08cf7642a126f6f8d2c7baefcb99 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 3 Jul 2025 13:32:41 +1000 Subject: [PATCH] Bug fix for build output table (#9946) - Ensure records are cleared after bulk operation --- src/frontend/lib/types/Tables.tsx | 2 +- src/frontend/src/hooks/UseTable.tsx | 12 +++++++++--- src/frontend/src/tables/build/BuildOutputTable.tsx | 6 +++--- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/frontend/lib/types/Tables.tsx b/src/frontend/lib/types/Tables.tsx index 71edb756e8..8b92fc5410 100644 --- a/src/frontend/lib/types/Tables.tsx +++ b/src/frontend/lib/types/Tables.tsx @@ -37,7 +37,7 @@ import type { FilterSetState } from './Filters'; */ export type TableState = { tableKey: string; - refreshTable: () => void; + refreshTable: (clearSelected?: boolean) => void; isLoading: boolean; setIsLoading: (value: boolean) => void; filterSet: FilterSetState; diff --git a/src/frontend/src/hooks/UseTable.tsx b/src/frontend/src/hooks/UseTable.tsx index 38034a5126..79d10e87f4 100644 --- a/src/frontend/src/hooks/UseTable.tsx +++ b/src/frontend/src/hooks/UseTable.tsx @@ -28,9 +28,15 @@ export function useTable(tableName: string, idAccessor = 'pk'): TableState { const [tableKey, setTableKey] = useState(generateTableName()); // Callback used to refresh (reload) the table - const refreshTable = useCallback(() => { - setTableKey(generateTableName()); - }, [generateTableName]); + const refreshTable = useCallback( + (clearSelection?: boolean) => { + setTableKey(generateTableName()); + if (clearSelection) { + clearSelectedRecords(); + } + }, + [generateTableName] + ); const filterSet: FilterSetState = useFilterSet(`table-${tableName}`); diff --git a/src/frontend/src/tables/build/BuildOutputTable.tsx b/src/frontend/src/tables/build/BuildOutputTable.tsx index 17170b333c..2fef5c763c 100644 --- a/src/frontend/src/tables/build/BuildOutputTable.tsx +++ b/src/frontend/src/tables/build/BuildOutputTable.tsx @@ -286,7 +286,7 @@ export default function BuildOutputTable({ build: build, outputs: selectedOutputs, onFormSuccess: () => { - table.refreshTable(); + table.refreshTable(true); refreshBuild(); } }); @@ -295,7 +295,7 @@ export default function BuildOutputTable({ build: build, outputs: selectedOutputs, onFormSuccess: () => { - table.refreshTable(); + table.refreshTable(true); refreshBuild(); } }); @@ -304,7 +304,7 @@ export default function BuildOutputTable({ build: build, outputs: selectedOutputs, onFormSuccess: () => { - table.refreshTable(); + table.refreshTable(true); refreshBuild(); } });