"use client" import { da, de, fi, nb, sv } from "date-fns/locale" import { useState } from "react" import { type DateRange, DayPicker } from "react-day-picker" import { useIntl } from "react-intl" import { Lang } from "@/constants/languages" import { dt } from "@/lib/dt" import Button from "@/components/TempDesignSystem/Button" import Divider from "@/components/TempDesignSystem/Divider" import Caption from "@/components/TempDesignSystem/Text/Caption" import Subtitle from "@/components/TempDesignSystem/Text/Subtitle" import useLang from "@/hooks/useLang" import { ChevronLeftIcon } from "../Icons" import styles from "./date-picker.module.css" import classNames from "react-day-picker/style.module.css" import type { DatePickerProps } from "@/types/components/datepicker" const locales = { [Lang.da]: da, [Lang.de]: de, [Lang.fi]: fi, [Lang.no]: nb, [Lang.sv]: sv, } export default function DatePicker({ close, handleOnSelect, initialSelected = { from: undefined, to: undefined, }, }: DatePickerProps) { const lang = useLang() const intl = useIntl() const [selectedDate, setSelectedDate] = useState(initialSelected) function handleSelectDate(selected: DateRange) { handleOnSelect(selected) setSelectedDate(selected) } /** English is default language and doesn't need to be imported */ const locale = lang === Lang.en ? undefined : locales[lang] const currentDate = dt().toDate() const startOfMonth = dt(currentDate).set("date", 1).toDate() const yesterday = dt(currentDate).subtract(1, "day").toDate() return ( }, Footer(props) { return ( <>
) }, MonthCaption(props) { return (
{props.children}
) }, Nav(props) { if (Array.isArray(props.children)) { const prevButton = props.children?.[0] const nextButton = props.children?.[1] return ( <> {prevButton ? ( ) : null} {nextButton ? ( ) : null} ) } return <> }, }} /> ) }