From 753115962dca3eb5b4ed7a1b3f70e767ec93af9f Mon Sep 17 00:00:00 2001 From: Lukas <lukas.budginas@gmail.com> Date: Fri, 22 Nov 2024 16:05:48 +0200 Subject: [PATCH] Update DateTimePicker disable future dates by default --- components/DateTimePicker.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/components/DateTimePicker.tsx b/components/DateTimePicker.tsx index cc474aef..3241d826 100644 --- a/components/DateTimePicker.tsx +++ b/components/DateTimePicker.tsx @@ -1,6 +1,6 @@ import * as React from "react"; import { Calendar as CalendarIcon } from "lucide-react"; - +import { Matcher } from "react-day-picker"; import { Button } from "./ui/button"; import { Calendar } from "./ui/calendar"; import { Popover, PopoverContent, PopoverTrigger } from "./ui/popover"; @@ -13,13 +13,15 @@ interface DateTimePickerProps { setDate: (date: Date) => void; side?: "left" | "top" | "right" | "bottom"; disableFutureDates?: boolean; + endDate?: Date; } const DateTimePicker: React.FC<DateTimePickerProps> = ({ date, setDate, side, - disableFutureDates = false, + disableFutureDates = true, + endDate, }) => { const handleSelect = (date: Date | undefined) => { if (date) { @@ -35,8 +37,14 @@ const DateTimePicker: React.FC<DateTimePickerProps> = ({ )} UTC`; }; - const disableFuture = (date: Date) => - (disableFutureDates && date > new Date()) || date < new Date("1900-01-01"); + const disableFuture: Matcher | Matcher[] | undefined | any = (date: Date) => { + if (disableFutureDates) { + if (endDate) { + return date > endDate || date < new Date("1900-01-01"); + } + return date > new Date() || date < new Date("1900-01-01"); + } + }; return ( <Popover> <PopoverTrigger -- GitLab