import { useCallback } from 'react'
import format from 'date-fns/format'

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 { selectedDate } = useHeaderFiltersStore()

  const fetchMatches = useCallback(
    (limit: number, offset: number) => getHomeMatches({
      date: getDate(selectedDate),
      limit,
      offset,
      timezoneOffset: getTimezoneOffset(selectedDate),
    }),
    [selectedDate],
  )
  return { fetchMatches }
}
