react-day-picker / examples /CustomMonthSelection.tsx
AbdulElahGwaith's picture
Upload folder using huggingface_hub
cf86710 verified
import { endOfMonth, startOfMonth } from "date-fns";
import React, { useState } from "react";
import { type DateRange, DayPicker } from "react-day-picker";
/** Toggle selection of an entire month. */
export function CustomMonthSelection() {
const [monthRange, setMonthRange] = useState<DateRange | undefined>();
const toMonthRange = (day: Date): DateRange => ({
from: startOfMonth(day),
to: endOfMonth(day),
});
const isInRange = (day: Date) =>
monthRange?.from && monthRange?.to
? day >= monthRange.from && day <= monthRange.to
: false;
return (
<DayPicker
showOutsideDays
modifiers={{
selected: monthRange,
range_start: monthRange?.from,
range_end: monthRange?.to,
range_middle: monthRange,
}}
onDayClick={(day, modifiers) => {
if (modifiers.disabled || modifiers.hidden) return;
setMonthRange(isInRange(day) ? undefined : toMonthRange(day));
}}
/>
);
}