"use client" import { type ReactNode, useContext } from "react" import { type TimeInputProps, TimeInput } from "@heroui/react" import type { CalendarDateTime, Time, ZonedDateTime } from "@internationalized/date" 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 { TimeMode } from "@/utils/parseTime" import { type TimeValueMode, type TimeValueModeMap, getFieldValue, getOnChange } from "@/utils/time" export interface FormTimeInputProps< ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap | null | undefined = TimeValueModeMap | null | undefined, > extends StrictOmit, never> { valueMode?: ValueMode emptyValue?: EmptyValue timeMode?: TimeMode defaultTime?: DefaultTime | (() => DefaultTime) component?: (props: TimeInputProps) => ReactNode } export function FormTimeInput< ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap | null | undefined = TimeValueModeMap | null | undefined, >({ field, valueMode, emptyValue, timeMode, defaultTime, component: TimeInput2 = TimeInput, ...rest }: FormTimeInputProps): ReactNode { const context = useContext(FormContext) emptyValue ??= context.emptyValue return ( ) }