import dayjs from "dayjs"; import { CalendarIcon } from "lucide-react"; import React from "react"; import { Calendar } from "src/components/ui/calendar"; import { Popover, PopoverContent, PopoverTrigger, } from "src/components/ui/popover"; import { cn } from "src/lib/utils"; import { expiryOptions } from "src/types"; const daysFromNow = (date?: Date) => { if (!date) { return undefined; } const now = dayjs(); const targetDate = dayjs(date); return targetDate.diff(now, "day"); }; interface ExpiryProps { value?: Date | undefined; onChange: (expiryDate?: Date) => void; } const ExpirySelect: React.FC = ({ value, onChange }) => { const [expiryDays, setExpiryDays] = React.useState(daysFromNow(value)); const isPreset = expiryDays !== undefined && Object.values(expiryOptions).includes(expiryDays); return ( <>
{Object.keys(expiryOptions).map((expiry) => { return ( ); })}
{ if (!date) { return; } date.setHours(23, 59, 59); onChange(date); setExpiryDays(daysFromNow(date)); }} autoFocus />
); }; export default ExpirySelect;