UNPKG

@payfit/unity-components

Version:

43 lines (42 loc) 1.39 kB
import { useFormField as e } from "../FormField.context.js"; import { useMemo as t } from "react"; import { jsx as n } from "react/jsx-runtime"; import { Slot as r } from "@radix-ui/react-slot"; import { mergeProps as i } from "react-aria/mergeProps"; import { useController as a, useFormContext as o } from "react-hook-form"; //#region src/components/form-field/parts/FormControl.tsx function s({ ...s }) { let { name: c, hasHelperText: l, hasContextualLink: u, fieldState: d, formLabelId: f, formItemId: p, formDescriptionId: m, formMessageId: h, formContextualLinkId: g } = e(), { control: _ } = o(), { field: { ref: v, ...y }, fieldState: { invalid: b, error: x } } = a({ name: c, control: _ }), S = t(() => [x ? h : void 0, l ? m : void 0].filter(Boolean).join(" "), [ x, l, m, h ]), C = { isInvalid: b, isDisabled: d.isDisabled, isLoading: d.isLoading, isReadOnly: d.isReadOnly }; return /* @__PURE__ */ n(r, { ...i(s, C, y), ref: v, "data-slot": "form-control", id: p, "aria-labelledby": f, "aria-describedby": S, "aria-details": u ? g : void 0, "aria-invalid": C.isInvalid, "data-invalid": C.isInvalid, "aria-disabled": C.isDisabled, "data-disabled": C.isDisabled, "aria-readonly": C.isReadOnly, "data-readonly": C.isReadOnly, "aria-busy": C.isLoading }); } s.displayName = "FormControl"; //#endregion export { s as FormControl };