"use client" import * as React from "react" import { fromDate, getLocalTimeZone, parseDate, toCalendarDate, type CalendarDate, } from "@internationalized/date" import { CalendarIcon } from "lucide-react" import { Calendar } from "@/styles/aria-nova/ui/calendar" import { Field, FieldLabel } from "@/styles/aria-nova/ui/field" import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, } from "@/styles/aria-nova/ui/input-group" import { Popover, PopoverTrigger } from "@/styles/aria-nova/ui/popover" function formatDate(date: Date | undefined) { if (!date) { return "" } return date.toLocaleDateString("en-US", { day: "2-digit", month: "long", year: "numeric", }) } function isValidDate(date: Date | undefined) { if (!date) { return false } return !isNaN(date.getTime()) } export function DatePickerInput() { const [open, setOpen] = React.useState(false) const [date, setDate] = React.useState( parseDate("2025-06-01") ) const [month, setMonth] = React.useState(date!) const [value, setValue] = React.useState( formatDate(date?.toDate(getLocalTimeZone())) ) return ( Subscription Date { const date = new Date(e.target.value) setValue(e.target.value) if (isValidDate(date)) { setDate(toCalendarDate(fromDate(date, getLocalTimeZone()))) setMonth(toCalendarDate(fromDate(date, getLocalTimeZone()))) } }} onKeyDown={(e) => { if (e.key === "ArrowDown") { e.preventDefault() setOpen(true) } }} /> Select date { setDate(date) setValue(formatDate(date?.toDate(getLocalTimeZone()))) setOpen(false) }} /> ) }