[questions][fix] fix query params updating wrongly

pull/355/head
Jeff Sieu 3 years ago
parent 1dde481928
commit 8ebb06fe8f

@ -46,13 +46,15 @@ export default function QuestionSearchBar<
value={sortValue} value={sortValue}
onChange={onSortChange} onChange={onSortChange}
/> />
<Button <div className="lg:hidden">
addonPosition="start" <Button
icon={AdjustmentsHorizontalIcon} addonPosition="start"
label="Filter options" icon={AdjustmentsHorizontalIcon}
variant="tertiary" label="Filter options"
onClick={onFilterOptionsToggle} variant="tertiary"
/> onClick={onFilterOptionsToggle}
/>
</div>
</div> </div>
); );
} }

@ -143,19 +143,38 @@ export default function QuestionsHomePage() {
]); ]);
useEffect(() => { useEffect(() => {
if (areFiltersInitialized) { if (areFiltersInitialized && !loaded) {
// Update query params
router.replace({
pathname: router.pathname,
query: {
companies: selectedCompanies,
locations: selectedLocations,
questionAge: selectedQuestionAge,
questionTypes: selectedQuestionTypes,
},
});
const hasFilter = const hasFilter =
router.query.companies || selectedCompanies.length > 0 ||
router.query.questionTypes || selectedLocations.length > 0 ||
router.query.questionAge || selectedQuestionAge !== 'all' ||
router.query.locations; selectedQuestionTypes.length > 0;
if (hasFilter) { if (hasFilter) {
setHasLanded(true); setHasLanded(true);
} }
// Console.log('landed', hasLanded);
setLoaded(true); setLoaded(true);
} }
}, [areFiltersInitialized, hasLanded, router.query]); }, [
areFiltersInitialized,
hasLanded,
loaded,
router,
selectedCompanies,
selectedLocations,
selectedQuestionAge,
selectedQuestionTypes,
]);
if (!loaded) { if (!loaded) {
return null; return null;
@ -291,7 +310,7 @@ export default function QuestionsHomePage() {
<h2 className="px-4 text-xl font-semibold">Filter by</h2> <h2 className="px-4 text-xl font-semibold">Filter by</h2>
{filterSidebar} {filterSidebar}
</aside> </aside>
<div className="hidden"> <div className="lg:hidden">
<SlideOut <SlideOut
enterFrom="end" enterFrom="end"
isShown={filterDrawerOpen} isShown={filterDrawerOpen}

@ -27,13 +27,6 @@ export const useSearchFilter = <Value extends string = string>(
if (localStorageValue !== null) { if (localStorageValue !== null) {
const loadedFilters = JSON.parse(localStorageValue); const loadedFilters = JSON.parse(localStorageValue);
setFilters(loadedFilters); setFilters(loadedFilters);
router.replace({
pathname: router.pathname,
query: {
...router.query,
[name]: loadedFilters,
},
});
} }
} }
setIsInitialized(true); setIsInitialized(true);

Loading…
Cancel
Save