UNPKG

niceform-hook

Version:
1 lines 2.07 kB
"use strict";var e=require("react-hook-form"),r=require("react/jsx-runtime"),t=require("react");const o=Object.prototype.hasOwnProperty;function n(e,r){let t,u;if(e===r)return!0;if(e&&r&&(t=e.constructor)===r.constructor){if(t===Date)return e.getTime()===r.getTime();if(t===RegExp)return e.toString()===r.toString();if(t===Array){if((u=e.length)===r.length)for(;u--&&n(e[u],r[u]););return-1===u}if(!t||"object"==typeof e){for(t in u=0,e){if(o.call(e,t)&&++u&&!o.call(r,t))return!1;if(!(t in r)||!n(e[t],r[t]))return!1}return Object.keys(r).length===u}}return e!=e&&r!=r}const u=function(e){const o=t.createContext(e);var n;return delete o.Consumer,o.Provider=(n=o.Provider,({value:e,children:o})=>{const u=t.useRef(e),c=t.useRef(new Set),i=t.useRef({value:u,registerListener:e=>(c.current.add(e),()=>c.current.delete(e))});return t.useEffect((()=>{u.current=e,c.current.forEach((r=>{r(e)}))}),[e]),r.jsx(n,{value:i.current,children:o})}),o}(null);function c(e,r=!1){return function(e,r,o=!1){const{value:u,registerListener:c}=t.useContext(e),i=t.useRef(r),[s,l]=t.useState((()=>r(u.current))),f=t.useRef(s);return f.current=s,t.useEffect((()=>{i.current=r})),t.useEffect((()=>c((e=>{const r=i.current(e);(o?n:Object.is)(f.current,r)||l((()=>r))}))),[c,u,o]),s}(u,e,r)}function i(){return c((e=>e.form.methods))}exports.useController=function(r){const{control:t}=i();return e.useController({control:t,...r})},exports.useFieldState=function(e){return c((r=>{var t,o,n,u,c;const i=(r=>r.getFieldState(e,r.formState))(r.form.methods);return{invalid:i.invalid,isDirty:i.isDirty,isTouched:i.isTouched,error:{type:null===(t=i.error)||void 0===t?void 0:t.type,root:null===(o=i.error)||void 0===o?void 0:o.root,ref:null===(n=i.error)||void 0===n?void 0:n.ref,types:null===(u=i.error)||void 0===u?void 0:u.types,message:null===(c=i.error)||void 0===c?void 0:c.message}}}),!0)},exports.useForm=i,exports.useFormState=function(r){const{control:t}=i();return e.useFormState({control:t,...r})},exports.useWatch=function(r){const{control:t}=i();return e.useWatch({control:t,...r})};