diff --git a/src/pages/Home/Home.tsx b/src/pages/Home/Home.tsx index 4f51f924..778535ac 100644 --- a/src/pages/Home/Home.tsx +++ b/src/pages/Home/Home.tsx @@ -1,4 +1,4 @@ -import { useCallback, useMemo, useState } from 'react'; +import { useMemo, useState } from 'react'; import { useSearchParams } from 'react-router-dom'; import { RotateCw } from 'lucide-react'; import qs from 'qs'; @@ -26,6 +26,7 @@ const Home = () => { ...initialFilterData, ...qs.parse(new URLSearchParams(window.location.search).toString()), }); + const [forceRefresh, setForceRefresh] = useState(false); const [, setSearch] = useThrottle( { @@ -42,36 +43,33 @@ const Home = () => { [] ); - const clearSearch = useCallback(() => { + const clearSearch = () => { setSearch(''); setFilterData(initialFilterData); setSearchParams(''); refresh(); - }, [refresh, setSearch, setSearchParams]); + }; const hasMore = useMemo( () => shelters.page * shelters.perPage < shelters.count, [shelters.page, shelters.perPage, shelters.count] ); - const onSubmitFilterForm = useCallback( - (values: IFilterFormProps) => { - setOpenModal(false); - setFilterData(values); - const searchQuery = qs.stringify(values, { - skipNulls: true, - }); - setSearchParams(searchQuery); - refresh({ - params: { - search: searchQuery, - }, - }); - }, - [refresh, setSearchParams] - ); + const onSubmitFilterForm = (values: IFilterFormProps) => { + setOpenModal(false); + setFilterData(values); + const searchQuery = qs.stringify(values, { + skipNulls: true, + }); + setSearchParams(searchQuery); + refresh({ + params: { + search: searchQuery, + }, + }); + }; - const handleFetchMore = useCallback(() => { + const handleFetchMore = () => { const params = { ...shelters.filters, page: shelters.page + 1, @@ -85,7 +83,11 @@ const Home = () => { }, true ); - }, [refresh, filterData, shelters.filters, shelters.page, shelters.perPage]); + }; + + const handleRefreshClick = () => { + setForceRefresh((prev) => !prev); + }; return (
@@ -106,7 +108,7 @@ const Home = () => { loading={loading} variant="ghost" size="sm" - onClick={() => refresh()} + onClick={handleRefreshClick} className="disabled:bg-red-500 hover:bg-red-400" > @@ -115,6 +117,7 @@ const Home = () => { } />