Skip to content

Commit 58abb81

Browse files
fix: modify params on queryInconsistencyInvalidator in HardwareDetails to avoid refetch loop (#1708)
1 parent e856bb0 commit 58abb81

1 file changed

Lines changed: 18 additions & 2 deletions

File tree

dashboard/src/pages/hardwareDetails/HardwareDetails.tsx

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,22 @@ function HardwareDetails(): JSX.Element {
128128

129129
const reqFilter = mapFilterToReq(diffFilter);
130130

131+
const inconsistencyNavigateParams = useMemo(
132+
() => ({ hardwareId }),
133+
[hardwareId],
134+
);
135+
136+
const inconsistencyInvalidatorEnabled = useMemo(() => {
137+
// Only compare against listing-provided router state when the page is in its
138+
// "default" state. When tree selection / commit selection is active, count
139+
// mismatches are expected and should not trigger global invalidations.
140+
return (
141+
isEmptyObject(reqFilter) &&
142+
treeIndexes === null &&
143+
isEmptyObject(treeCommits)
144+
);
145+
}, [reqFilter, treeCommits, treeIndexes]);
146+
131147
const updateTreeFilters = useCallback((selectedIndexes: number[] | null) => {
132148
navigate({
133149
search: previousSearch => ({
@@ -209,8 +225,8 @@ function HardwareDetails(): JSX.Element {
209225
referenceData: hardwareStatusHistoryState,
210226
comparedData: hardwareDataPreparedForInconsistencyValidation,
211227
navigate: navigate,
212-
enabled: isEmptyObject(reqFilter),
213-
navigateParams: { hardwareId: hardwareId },
228+
enabled: inconsistencyInvalidatorEnabled,
229+
navigateParams: inconsistencyNavigateParams,
214230
});
215231

216232
const hardwareTableForCommitHistory = useMemo(() => {

0 commit comments

Comments
 (0)