From e1d0d4dd235ec5a8918e2965319b7ba24183a358 Mon Sep 17 00:00:00 2001 From: Jo Inge Arnes Date: Mon, 22 Apr 2024 18:57:52 +0200 Subject: [PATCH] Fix treatment units tree not initially expanded for selection in query params (#2369) * refresh tree of available treatment units after query params has completed loading * apiQueriesCompleted should only be true the first time the query has changed from loading to not loading --- .../TreatmentQualityFilterMenu/index.tsx | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/qmongjs/src/components/FilterMenu/TreatmentQualityFilterMenu/index.tsx b/packages/qmongjs/src/components/FilterMenu/TreatmentQualityFilterMenu/index.tsx index 1a90fbe6d5..9fc01e7696 100644 --- a/packages/qmongjs/src/components/FilterMenu/TreatmentQualityFilterMenu/index.tsx +++ b/packages/qmongjs/src/components/FilterMenu/TreatmentQualityFilterMenu/index.tsx @@ -102,7 +102,7 @@ export function TreatmentQualityFilterMenu({ // the first call after the prerender is done. const [prevReady, setPrevReady] = useState(router.isReady); - const shouldRefreshInititalState = prevReady !== router.isReady; + const prerenderFinished = prevReady !== router.isReady; useEffect(() => { setPrevReady(router.isReady); @@ -170,6 +170,15 @@ export function TreatmentQualityFilterMenu({ queryContext.type, ); + const [prevApiQueryLoading, setPrevApiQueryLoading] = useState( + unitNamesQuery.isLoading, + ); + const apiQueriesCompleted = prevApiQueryLoading && !unitNamesQuery.isLoading; + + useEffect(() => { + setPrevApiQueryLoading(unitNamesQuery.isLoading); + }, [unitNamesQuery.isLoading]); + const treatmentUnits = getTreatmentUnitsTree(unitNamesQuery); optionsMap.set(treatmentUnitsKey, { @@ -270,6 +279,8 @@ export function TreatmentQualityFilterMenu({ return filterSettingsValue?.valueLabel ?? null; }; + const shouldRefreshInitialState = prerenderFinished || apiQueriesCompleted; + return ( <> {!(medicalFieldData || registryNameData) && ( @@ -278,7 +289,7 @@ export function TreatmentQualityFilterMenu({ )} @@ -310,7 +321,7 @@ export function TreatmentQualityFilterMenu({ filterkey={levelKey} />