"use client" import { type ReactNode, useContext } from "react" import { type DatePickerProps, type DateValue, DatePicker } from "@heroui/react" import type { FieldComponentProps } from "soda-tanstack-form" import type { StrictOmit } from "soda-type" import { type EmptyValue, FormContext } from "@/components/FormProvider" import { getFieldProps } from "@/utils/getFieldProps" import type { DefaultTime } from "@/utils/getTimeValue" import type { DateMode } from "@/utils/parseTime" import { type TimeValueMode, type TimeValueModeMap, getFieldValue, getOnChange } from "@/utils/time" export interface FormDatePickerProps< ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap | null | undefined = TimeValueModeMap | null | undefined, > extends StrictOmit, never> { valueMode?: ValueMode emptyValue?: EmptyValue dateMode?: DateMode defaultTime?: DefaultTime | (() => DefaultTime) component?: (props: DatePickerProps) => ReactNode } export function FormDatePicker< ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap | null | undefined = TimeValueModeMap | null | undefined, >({ field, valueMode, emptyValue, dateMode, defaultTime, component: DatePicker2 = DatePicker, ...rest }: FormDatePickerProps): ReactNode { const context = useContext(FormContext) emptyValue ??= context.emptyValue return ( ) }