import React, { useMemo } from "react"; import { CalendarWeek, useDayPicker } from "react-day-picker"; import { Button } from "../../../button"; import { Hide, Show } from "../../../primitives/responsive"; import { Detail } from "../../../typography"; import { cl } from "../../../utils/helpers"; import { useDateTranslationContext } from "../../Date.locale"; import { MultipleMode } from "../DatePicker.types"; const DatePickerWeekNumber = ({ week: { weekNumber, days }, onWeekNumberClick, className, style, showOnDesktop, }: { week: CalendarWeek; onWeekNumberClick: MultipleMode["onWeekNumberClick"]; showOnDesktop: boolean; } & React.ThHTMLAttributes) => { const translate = useDateTranslationContext().translate; const { getModifiers } = useDayPicker(); const hideWeek = useMemo(() => { if ( days.filter((day) => { const mods = getModifiers(day); return !(mods.hidden || mods.outside || mods.disabled); }).length === 0 ) { return true; } return false; }, [days, getModifiers]); const DisplayMode = showOnDesktop ? Show : Hide; if (!onWeekNumberClick || hideWeek) { return ( {weekNumber} ); } return (