import { addDays } from "date-fns"; import React, { useState } from "react"; import { type DateRange, DayPicker } from "react-day-picker"; /** Select a fixed-length range starting from the clicked day. */ export function CustomRollingWindow() { const [range, setRange] = useState(); const windowLength = 7; const applyRange = (start: Date): DateRange => ({ from: start, to: addDays(start, windowLength - 1), }); return ( { if (modifiers.disabled || modifiers.hidden) return; setRange(modifiers.selected ? undefined : applyRange(day)); }} onDayKeyDown={(day, modifiers, e) => { if (e.key === " " || e.key === "Enter") { e.preventDefault(); if (modifiers.disabled || modifiers.hidden) return; setRange(modifiers.selected ? undefined : applyRange(day)); } }} /> ); }