import { MouseEventHandler } from 'react';
import { useDayPicker } from 'contexts/DayPicker';
import { Button } from '../Button';
/**
* The props for the {@link WeekNumber} component.
*/
export interface WeekNumberProps {
/** The number of the week. */
number: number;
/** The dates in the week. */
dates: Date[];
}
/**
* Render the week number element. If `onWeekNumberClick` is passed to DayPicker, it
* renders a button, otherwise a span element.
*/
export function WeekNumber(props: WeekNumberProps): JSX.Element {
const { number: weekNumber, dates } = props;
const {
onWeekNumberClick,
styles,
classNames,
locale,
labels: { labelWeekNumber },
formatters: { formatWeekNumber }
} = useDayPicker();
const content = formatWeekNumber(Number(weekNumber), { locale });
if (!onWeekNumberClick) {
return (
{content}
);
}
const label = labelWeekNumber(Number(weekNumber), { locale });
const handleClick: MouseEventHandler = function (e) {
onWeekNumberClick(weekNumber, dates, e);
};
return (
);
}