UNPKG

@vtaits/react-hook-form-schema

Version:

Integration of react-hook-form and @vtaits/form-schema

97 lines (95 loc) 2.32 kB
import { wrapOnChange } from "./chunk-7ZPD7GZF.js"; import { renderError } from "./chunk-XUSORK34.js"; // src/fields/date/date.tsx import { DEFAULT_CLIENT_DATE_FORMAT, DEFAULT_DISPLAY_DATE_FORMAT, date as dateBase } from "@vtaits/form-schema/fields/date"; import { parseValueAndValidate, serializeDate } from "@vtaits/form-schema/fields/date-base"; import { useUI } from "@vtaits/react-form-schema-base-ui"; import { Controller, get } from "react-hook-form"; import { jsx } from "react/jsx-runtime"; function DateComponent({ renderParams: { fieldPath, fieldSchema: { clientDateFormat: clientDateFormatParam, disabled, displayDateFormat: displayDateFormatParam, autoFocus, label, hint, inputProps, onChange = void 0, required } }, formResult, formResult: { control, formState: { errors } } }) { const { renderDatePicker, renderWrapper } = useUI(); const error = renderError(get(errors, fieldPath)); const wrapperParams = { error, hint, label, name: fieldPath, required }; const clientDateFormat = clientDateFormatParam || DEFAULT_CLIENT_DATE_FORMAT; const displayDateFormat = displayDateFormatParam || DEFAULT_DISPLAY_DATE_FORMAT; return renderWrapper({ ...wrapperParams, children: /* @__PURE__ */ jsx( Controller, { name: fieldPath, control, render: ({ field }) => { const wrappedOnChange = wrapOnChange( field.onChange, onChange, formResult, field.value ); return renderDatePicker({ disabled, displayDateFormat, name: fieldPath, inputProps: inputProps || {}, autoFocus, onChange: (nextValue) => { wrappedOnChange( nextValue ? serializeDate(nextValue, clientDateFormat) : null ); }, value: parseValueAndValidate(field.value, clientDateFormat), wrapper: wrapperParams }); } } ) }); } var date = { ...dateBase, render: (renderParams, formResult) => /* @__PURE__ */ jsx(DateComponent, { renderParams, formResult }) }; export { date }; //# sourceMappingURL=chunk-V63N2WCL.js.map