|
|
|
|
@ -1,8 +1,10 @@ |
|
|
|
|
import { |
|
|
|
|
useMemo, |
|
|
|
|
useState, |
|
|
|
|
useEffect, |
|
|
|
|
useCallback, |
|
|
|
|
} from 'react' |
|
|
|
|
import { useLocation } from 'react-router-dom' |
|
|
|
|
|
|
|
|
|
import format from 'date-fns/format' |
|
|
|
|
import startOfDay from 'date-fns/startOfDay' |
|
|
|
|
@ -25,6 +27,7 @@ export enum MatchStatuses { |
|
|
|
|
const dateFormat = 'dd/MM/yyyy HH:mm:ss' |
|
|
|
|
|
|
|
|
|
export const useFilters = () => { |
|
|
|
|
const { search } = useLocation() |
|
|
|
|
const [selectedDate, setSelectedDate] = useQueryParamStore({ |
|
|
|
|
defaultValue: new Date(), |
|
|
|
|
key: filterKeys.DATE, |
|
|
|
|
@ -65,6 +68,23 @@ export const useFilters = () => { |
|
|
|
|
setSelectedTournamentId, |
|
|
|
|
] = useState<number | null>(null) |
|
|
|
|
|
|
|
|
|
const resetFilters = useCallback(() => { |
|
|
|
|
setSelectedDate(new Date()) |
|
|
|
|
setMatchStatus(null) |
|
|
|
|
setSelectedSportTypeId(null) |
|
|
|
|
setSelectedTournamentId(null) |
|
|
|
|
}, [ |
|
|
|
|
setSelectedDate, |
|
|
|
|
setMatchStatus, |
|
|
|
|
setSelectedSportTypeId, |
|
|
|
|
]) |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (!search) { |
|
|
|
|
resetFilters() |
|
|
|
|
} |
|
|
|
|
}, [search, resetFilters]) |
|
|
|
|
|
|
|
|
|
const store = useMemo(() => ({ |
|
|
|
|
selectedDate, |
|
|
|
|
selectedDateFormatted: format(startOfDay(selectedDate), dateFormat), |
|
|
|
|
|