diff --git a/src/components/date-time-picker.tsx b/src/components/date-time-picker.tsx index d0fc311..8bafc59 100644 --- a/src/components/date-time-picker.tsx +++ b/src/components/date-time-picker.tsx @@ -1,6 +1,14 @@ "use client"; -import { format, isValid, parse, parseISO } from "date-fns"; +import { + addMonths, + addWeeks, + format, + isValid, + parse, + parseISO, + startOfDay, +} from "date-fns"; import { CalendarIcon } from "lucide-react"; import * as React from "react"; import { Calendar } from "@/components/ui/calendar"; @@ -97,6 +105,17 @@ export function DateTimePicker({ onChange(buildValue(base, currentHour, Number(m), allDay)); }; + const handleQuickSelect = (day: Date) => { + onChange(buildValue(day, currentHour, snappedMinute, allDay)); + setOpen(false); + }; + + const quickOptions: { label: string; date: Date }[] = [ + { label: "Today", date: startOfDay(new Date()) }, + { label: "Next week", date: startOfDay(addWeeks(new Date(), 1)) }, + { label: "Next month", date: startOfDay(addMonths(new Date(), 1)) }, + ]; + const displayLabel = parsed ? allDay ? format(parsed, "MMM d, yyyy") @@ -124,6 +143,18 @@ export function DateTimePicker({ +
+ {quickOptions.map(({ label, date }) => ( + + ))} +