UNPKG

@nlabs/gothamjs

Version:
88 lines (87 loc) 8.91 kB
import { forwardRef } from "react"; import { Controller, useFormContext } from "react-hook-form"; import { ErrorMessage } from "../ErrorMessage/ErrorMessage.js"; import { InputField } from "../InputField/InputField.js"; import { Label } from "../Label/Label.js"; import { useTranslation } from "react-i18next"; import { jsx, jsxs } from "react/jsx-runtime"; const TextField = forwardRef(({ borderColor = "black", borderType, className, color = "neutral", defaultValue = "", error: externalError, errorColor = "error", inputClass, label = "", labelClass = "mb-1", labelColor = "neutral", multiline = false, name, onChange: onChangeProp, onValidate, pattern, placeholder = "", placeholderColor = "neutral", rows, textColor = "neutral", value, ...restInputProps }, ref) => { const { t } = useTranslation(); const { control, formState: { errors } } = useFormContext(); const formError = errors?.[name]; const hasError = !!formError; const placeholderText = t(placeholder); return /* @__PURE__ */ jsx( Controller, { control, name, defaultValue, render: ({ field: { onBlur, onChange, ref: fieldRef, value: value2 } }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col w-full", children: [ /* @__PURE__ */ jsx( Label, { className: labelClass, color: labelColor, label, name } ), /* @__PURE__ */ jsxs("div", { className: "relative", children: [ /* @__PURE__ */ jsx( InputField, { borderColor, borderType, className: inputClass, color: hasError ? "error" : color, id: name, multiline, onBlur, onChange, placeholder: placeholderText, placeholderColor, textColor, value: value2, ref: (e) => { fieldRef(e); if (ref && typeof ref === "object") { ref.current = e; } }, ...restInputProps } ), /* @__PURE__ */ jsx(ErrorMessage, { message: formError?.message, color: errorColor }) ] }) ] }) } ); }); export { TextField }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVGV4dEZpZWxkL1RleHRGaWVsZC50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgUmVhY3QsIHtmb3J3YXJkUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0NvbnRyb2xsZXIsIHVzZUZvcm1Db250ZXh0fSBmcm9tICdyZWFjdC1ob29rLWZvcm0nO1xuXG5pbXBvcnQge0Vycm9yTWVzc2FnZX0gZnJvbSAnLi4vRXJyb3JNZXNzYWdlL0Vycm9yTWVzc2FnZS5qcyc7XG5pbXBvcnQge0lucHV0RmllbGR9IGZyb20gJy4uL0lucHV0RmllbGQvSW5wdXRGaWVsZC5qcyc7XG5pbXBvcnQge0xhYmVsfSBmcm9tICcuLi9MYWJlbC9MYWJlbC5qcyc7XG5cbmltcG9ydCB7dXNlVHJhbnNsYXRpb259IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHR5cGUge0dvdGhhbUNvbG9yfSBmcm9tICcuLi8uLi91dGlscy9jb2xvclV0aWxzLmpzJztcbmltcG9ydCB0eXBlIHtJbnB1dEJvcmRlclR5cGV9IGZyb20gJy4uL0lucHV0RmllbGQvSW5wdXRGaWVsZC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dEZpZWxkUHJvcHMgZXh0ZW5kcyBSZWFjdC5JbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50PiB7XG4gIHJlYWRvbmx5IGJvcmRlckNvbG9yPzogR290aGFtQ29sb3I7XG4gIHJlYWRvbmx5IGJvcmRlclR5cGU/OiBJbnB1dEJvcmRlclR5cGU7XG4gIHJlYWRvbmx5IGNsYXNzTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgY29sb3I/OiBHb3RoYW1Db2xvcjtcbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICByZWFkb25seSBlcnJvcj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVycm9yQ29sb3I/OiBHb3RoYW1Db2xvcjtcbiAgcmVhZG9ubHkgaGFzRXJyb3I/OiBib29sZWFuO1xuICByZWFkb25seSBpbnB1dENsYXNzPzogc3RyaW5nO1xuICByZWFkb25seSBsYWJlbD86IHN0cmluZztcbiAgcmVhZG9ubHkgbGFiZWxDbGFzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgbGFiZWxDb2xvcj86IEdvdGhhbUNvbG9yO1xuICByZWFkb25seSBtdWx0aWxpbmU/OiBib29sZWFuO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9uVmFsaWRhdGU/OiAoaXNWYWxpZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgcmVhZG9ubHkgcGF0dGVybj86IHN0cmluZztcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXJDb2xvcj86IEdvdGhhbUNvbG9yO1xuICByZWFkb25seSByb3dzPzogbnVtYmVyO1xuICByZWFkb25seSB0ZXh0Q29sb3I/OiBHb3RoYW1Db2xvcjtcbn1cblxuZXhwb3J0IGNvbnN0IFRleHRGaWVsZCA9IGZvcndhcmRSZWY8SFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQsIFRleHRGaWVsZFByb3BzPigoe1xuICBib3JkZXJDb2xvciA9ICdibGFjaycsXG4gIGJvcmRlclR5cGUsXG4gIGNsYXNzTmFtZSxcbiAgY29sb3IgPSAnbmV1dHJhbCcsXG4gIGRlZmF1bHRWYWx1ZSA9ICcnLFxuICBlcnJvcjogZXh0ZXJuYWxFcnJvcixcbiAgZXJyb3JDb2xvciA9ICdlcnJvcicsXG4gIGlucHV0Q2xhc3MsXG4gIGxhYmVsID0gJycsXG4gIGxhYmVsQ2xhc3MgPSAnbWItMScsXG4gIGxhYmVsQ29sb3IgPSAnbmV1dHJhbCcsXG4gIG11bHRpbGluZSA9IGZhbHNlLFxuICBuYW1lLFxuICBvbkNoYW5nZTogb25DaGFuZ2VQcm9wLFxuICBvblZhbGlkYXRlLFxuICBwYXR0ZXJuLFxuICBwbGFjZWhvbGRlciA9ICcnLFxuICBwbGFjZWhvbGRlckNvbG9yID0gJ25ldXRyYWwnLFxuICByb3dzLFxuICB0ZXh0Q29sb3IgPSAnbmV1dHJhbCcsXG4gIHZhbHVlLFxuICAuLi5yZXN0SW5wdXRQcm9wc1xufSwgcmVmKSA9PiB7XG4gIGNvbnN0IHt0fSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IHtjb250cm9sLCBmb3JtU3RhdGU6IHtlcnJvcnN9fSA9IHVzZUZvcm1Db250ZXh0KCk7XG4gIGNvbnN0IGZvcm1FcnJvciA9IGVycm9ycz8uW25hbWVdO1xuICBjb25zdCBoYXNFcnJvciA9ICEhZm9ybUVycm9yO1xuICBjb25zdCBwbGFjZWhvbGRlclRleHQgPSB0KHBsYWNlaG9sZGVyKTtcbiAgcmV0dXJuIChcbiAgICA8Q29udHJvbGxlclxuICAgICAgY29udHJvbD17Y29udHJvbH1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cbiAgICAgIHJlbmRlcj17KHtmaWVsZDoge29uQmx1ciwgb25DaGFuZ2UsIHJlZjogZmllbGRSZWYsIHZhbHVlfX0pID0+IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIHctZnVsbFwiPlxuICAgICAgICAgIDxMYWJlbFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtsYWJlbENsYXNzfVxuICAgICAgICAgICAgY29sb3I9e2xhYmVsQ29sb3J9XG4gICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICBuYW1lPXtuYW1lfSAvPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgIDxJbnB1dEZpZWxkXG4gICAgICAgICAgICAgIGJvcmRlckNvbG9yPXtib3JkZXJDb2xvcn1cbiAgICAgICAgICAgICAgYm9yZGVyVHlwZT17Ym9yZGVyVHlwZX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtpbnB1dENsYXNzfVxuICAgICAgICAgICAgICBjb2xvcj17aGFzRXJyb3IgPyAnZXJyb3InIDogY29sb3J9XG4gICAgICAgICAgICAgIGlkPXtuYW1lfVxuICAgICAgICAgICAgICBtdWx0aWxpbmU9e211bHRpbGluZX1cbiAgICAgICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyVGV4dH1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXJDb2xvcj17cGxhY2Vob2xkZXJDb2xvcn1cbiAgICAgICAgICAgICAgdGV4dENvbG9yPXt0ZXh0Q29sb3J9XG4gICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgcmVmPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGZpZWxkUmVmKGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlZiAmJiB0eXBlb2YgcmVmID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgcmVmLmN1cnJlbnQgPSBlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLnJlc3RJbnB1dFByb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxFcnJvck1lc3NhZ2UgbWVzc2FnZT17Zm9ybUVycm9yPy5tZXNzYWdlIGFzIHN0cmluZ30gY29sb3I9e2Vycm9yQ29sb3J9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICAvPlxuICApO1xufSk7Il0sCiAgIm1hcHBpbmdzIjogIkFBSUEsU0FBZSxrQkFBaUI7QUFDaEMsU0FBUSxZQUFZLHNCQUFxQjtBQUV6QyxTQUFRLG9CQUFtQjtBQUMzQixTQUFRLGtCQUFpQjtBQUN6QixTQUFRLGFBQVk7QUFFcEIsU0FBUSxzQkFBcUI7QUE4RG5CLGNBS0EsWUFMQTtBQXBDSCxNQUFNLFlBQVksV0FBbUUsQ0FBQztBQUFBLEVBQzNGLGNBQWM7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLEVBQ0EsUUFBUTtBQUFBLEVBQ1IsZUFBZTtBQUFBLEVBQ2YsT0FBTztBQUFBLEVBQ1AsYUFBYTtBQUFBLEVBQ2I7QUFBQSxFQUNBLFFBQVE7QUFBQSxFQUNSLGFBQWE7QUFBQSxFQUNiLGFBQWE7QUFBQSxFQUNiLFlBQVk7QUFBQSxFQUNaO0FBQUEsRUFDQSxVQUFVO0FBQUEsRUFDVjtBQUFBLEVBQ0E7QUFBQSxFQUNBLGNBQWM7QUFBQSxFQUNkLG1CQUFtQjtBQUFBLEVBQ25CO0FBQUEsRUFDQSxZQUFZO0FBQUEsRUFDWjtBQUFBLEVBQ0EsR0FBRztBQUNMLEdBQUcsUUFBUTtBQUNULFFBQU0sRUFBQyxFQUFDLElBQUksZUFBZTtBQUMzQixRQUFNLEVBQUMsU0FBUyxXQUFXLEVBQUMsT0FBTSxFQUFDLElBQUksZUFBZTtBQUN0RCxRQUFNLFlBQVksU0FBUyxJQUFJO0FBQy9CLFFBQU0sV0FBVyxDQUFDLENBQUM7QUFDbkIsUUFBTSxrQkFBa0IsRUFBRSxXQUFXO0FBQ3JDLFNBQ0U7QUFBQSxJQUFDO0FBQUE7QUFBQSxNQUNDO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBLFFBQVEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxRQUFRLFVBQVUsS0FBSyxVQUFVLE9BQUFBLE9BQUssRUFBQyxNQUN2RCxxQkFBQyxTQUFJLFdBQVUsd0JBQ2I7QUFBQTtBQUFBLFVBQUM7QUFBQTtBQUFBLFlBQ0MsV0FBVztBQUFBLFlBQ1gsT0FBTztBQUFBLFlBQ1A7QUFBQSxZQUNBO0FBQUE7QUFBQSxRQUFZO0FBQUEsUUFDZCxxQkFBQyxTQUFJLFdBQVUsWUFDYjtBQUFBO0FBQUEsWUFBQztBQUFBO0FBQUEsY0FDQztBQUFBLGNBQ0E7QUFBQSxjQUNBLFdBQVc7QUFBQSxjQUNYLE9BQU8sV0FBVyxVQUFVO0FBQUEsY0FDNUIsSUFBSTtBQUFBLGNBQ0o7QUFBQSxjQUNBO0FBQUEsY0FDQTtBQUFBLGNBQ0EsYUFBYTtBQUFBLGNBQ2I7QUFBQSxjQUNBO0FBQUEsY0FDQSxPQUFPQTtBQUFBLGNBQ1AsS0FBSyxDQUFDLE1BQU07QUFDVix5QkFBUyxDQUFDO0FBRVYsb0JBQUksT0FBTyxPQUFPLFFBQVEsVUFBVTtBQUNsQyxzQkFBSSxVQUFVO0FBQUEsZ0JBQ2hCO0FBQUEsY0FDRjtBQUFBLGNBQ0MsR0FBRztBQUFBO0FBQUEsVUFDTjtBQUFBLFVBQ0Esb0JBQUMsZ0JBQWEsU0FBUyxXQUFXLFNBQW1CLE9BQU8sWUFBWTtBQUFBLFdBQzFFO0FBQUEsU0FDRjtBQUFBO0FBQUEsRUFFSjtBQUVKLENBQUM7IiwKICAibmFtZXMiOiBbInZhbHVlIl0KfQo=