keep-around/544eb030b8d2730e2010fcdd26a2fcb76c45827f
parent
133bdd6423
commit
544eb030b8
@ -1,6 +0,0 @@ |
||||
import startOfDay from 'date-fns/startOfDay' |
||||
|
||||
export const getMoscowDate = (date: Date) => startOfDay(date).toLocaleString( |
||||
'en-GB', |
||||
{ timeZone: 'Europe/Moscow' }, |
||||
) |
||||
@ -1,19 +1,35 @@ |
||||
import { useCallback } from 'react' |
||||
import format from 'date-fns/format' |
||||
|
||||
import { getHomeMatches } from 'requests' |
||||
import { getHomeMatches } from 'requests/getMatches' |
||||
|
||||
import { useHeaderFiltersStore } from 'features/HeaderFilters' |
||||
|
||||
/** |
||||
* возвращает смещение в минутах относительно UTC |
||||
* |
||||
* Date.getTimezoneOffset() для UTC+3 возвращает -180 |
||||
* но api ожидает 180 поэтому инвертируем смещение |
||||
*/ |
||||
const getTimezoneOffset = (date: Date) => { |
||||
const offset = date.getTimezoneOffset() |
||||
if (offset === 0) return offset |
||||
return -(offset) |
||||
} |
||||
|
||||
const getDate = (date: Date) => format(date, 'yyyy-MM-dd') |
||||
|
||||
export const useHomePage = () => { |
||||
const { selectedDateFormatted } = useHeaderFiltersStore() |
||||
const { selectedDate } = useHeaderFiltersStore() |
||||
|
||||
const fetchMatches = useCallback( |
||||
(limit: number, offset: number) => getHomeMatches({ |
||||
date: selectedDateFormatted, |
||||
date: getDate(selectedDate), |
||||
limit, |
||||
offset, |
||||
timezoneOffset: getTimezoneOffset(selectedDate), |
||||
}), |
||||
[selectedDateFormatted], |
||||
[selectedDate], |
||||
) |
||||
return { fetchMatches } |
||||
} |
||||
|
||||
Loading…
Reference in new issue