import * as React from "react"; import type { FormFieldProps } from "../types"; import { FormFieldMessages, FormFieldWrapper, useTranslatedTexts, } from "./FormFieldWrapper"; type TimeRange = { start: string; end: string } | null; type TimeRangeFormFieldProps = Omit, "onBlur"> & { value: TimeRange; onChange: (value: TimeRange) => void; onBlur?: () => void; }; export function TimeRangeFormField({ name, label, bottomText, startLabel, endLabel, error, onBlur, value, onChange, }: TimeRangeFormFieldProps) { const startId = React.useId(); const endId = React.useId(); const { translatedLabel } = useTranslatedTexts({ label }); const { translatedLabel: translatedStartLabel } = useTranslatedTexts({ label: startLabel, }); const { translatedLabel: translatedEndLabel } = useTranslatedTexts({ label: endLabel, }); const handleStartChange = (e: React.ChangeEvent) => { const newStart = e.target.value; if (!newStart && !value?.end) { onChange(null); } else { onChange({ start: newStart, end: value?.end ?? "" }); } }; const handleEndChange = (e: React.ChangeEvent) => { const newEnd = e.target.value; if (!newEnd && !value?.start) { onChange(null); } else { onChange({ start: value?.start ?? "", end: newEnd }); } }; return (
{translatedLabel ? ( {translatedLabel} ) : null}
onBlur?.()} className="size-extra-small" /> onBlur?.()} className="size-extra-small" />
); }