From 5f0acf89111c06649cd0395817bdc7e609691db6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ricks?= Date: Fri, 7 Jun 2024 09:00:18 +0200 Subject: [PATCH] Reorder variable and hook definitions Allow for better reading flow where variables and hooks are defined at the top. --- src/web/hooks/usePageFilter.js | 51 +++++++++++++++++----------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/src/web/hooks/usePageFilter.js b/src/web/hooks/usePageFilter.js index fca0d353a7..f8f3408649 100644 --- a/src/web/hooks/usePageFilter.js +++ b/src/web/hooks/usePageFilter.js @@ -53,23 +53,40 @@ const useDefaultFilter = pageName => */ const usePageFilter = ( pageName, - {fallbackFilter, locationQueryFilterString} = {}, + { + fallbackFilter, + locationQueryFilterString: initialLocationQueryFilterString, + } = {}, ) => { const gmp = useGmp(); const dispatch = useDispatch(); const location = useLocation(); const history = useHistory(); + const [defaultSettingFilter, defaultSettingsFilterError] = + useDefaultFilter(pageName); + let [rowsPerPage, rowsPerPageError] = useShallowEqualSelector(state => { + const userSettingDefaultSel = getUserSettingsDefaults(state); + return [ + userSettingDefaultSel.getValueByName('rowsperpage'), + userSettingDefaultSel.getError(), + ]; + }); + const pageFilter = useShallowEqualSelector(state => + getPage(state).getFilter(pageName), + ); - // only use location directly if locationQueryFilterString is undefined // use null as value for not set at all - if (!isDefined(locationQueryFilterString)) { - locationQueryFilterString = location?.query?.filter; - } - let returnedFilter; + // only use location directly if locationQueryFilterString is undefined + const locationQueryFilterString = initialLocationQueryFilterString + ? initialLocationQueryFilterString + : location?.query?.filter; - const [defaultSettingFilter, defaultSettingsFilterError] = - useDefaultFilter(pageName); + const [locationQueryFilter, setLocationQueryFilter] = useState( + hasValue(locationQueryFilterString) + ? Filter.fromString(locationQueryFilterString) + : undefined, + ); useEffect(() => { if ( @@ -86,26 +103,12 @@ const usePageFilter = ( pageName, ]); - let [rowsPerPage, rowsPerPageError] = useShallowEqualSelector(state => { - const userSettingDefaultSel = getUserSettingsDefaults(state); - return [ - userSettingDefaultSel.getValueByName('rowsperpage'), - userSettingDefaultSel.getError(), - ]; - }); - useEffect(() => { if (!isDefined(rowsPerPage)) { dispatch(loadUserSettingDefault(gmp)(ROWS_PER_PAGE_SETTING_ID)); } }, [returnedFilter, rowsPerPage, gmp, dispatch]); - const [locationQueryFilter, setLocationQueryFilter] = useState( - hasValue(locationQueryFilterString) - ? Filter.fromString(locationQueryFilterString) - : undefined, - ); - useEffect(() => { if (hasValue(locationQueryFilterString)) { dispatch( @@ -115,10 +118,6 @@ const usePageFilter = ( setLocationQueryFilter(undefined); }, []); // eslint-disable-line react-hooks/exhaustive-deps - const pageFilter = useShallowEqualSelector(state => - getPage(state).getFilter(pageName), - ); - if (hasValue(locationQueryFilter)) { returnedFilter = locationQueryFilter; } else if (isDefined(pageFilter)) {