ponchojs
Version:
Poncho
3 lines (2 loc) • 2.71 kB
JavaScript
;var e=require("react"),t=require("./tslib.es6-ca8de689.js"),s=require("./emotion-react-jsx-runtime.esm-1fb36074.js");const a=e=>e&&"object"==typeof e&&!Array.isArray(e),r=(e,t)=>{const s=Object.assign({},e);return a(e)&&a(t)&&Object.keys(t).forEach((i=>{a(t[i])&&i in e?s[i]=r(e[i],t[i]):Object.assign(s,{[i]:t[i]})})),s},i=(e,t="",s={})=>Object.entries(e).reduce(((e,[a,r])=>(a=`${t}${a}`,"object"==typeof r?i(r,`${a}.`,e):s[a]=r,e)),s),n=e=>Object(e)===e?1+Math.max(-1,...Object.values(e).map(n)):0;var c={mergeDeep:r,setObj:(e,t)=>e.split(".").reverse().reduce(((e,s)=>({[s]:e||t})),null),nestedCount:e=>(e=i(e),Object.keys(e).length),objectDepth:n};const u={actualStep:0,steps:[],initialValues:{},fieldsProps:{},validationSchema:{},formik:{values:{},setValues:()=>{}}},l=e.createContext([u,()=>{}]),o=(e,t)=>{switch(t.type){case"PREPARE":var{id:s,initialValue:a,validate:r}=t.input,i=(e,t,s)=>{if(t.includes(".")){var a=c.mergeDeep({},c.setObj(t,s||""));return c.mergeDeep(e,a)}return Object.assign(Object.assign({},e),{[t]:s||""})},a=i(e.initialValues,s,a),r=i(e.validationSchema,s,r),s=i(e.fieldsProps,s,t.input);return Object.assign(Object.assign({},e),{initialValues:a,validationSchema:r,fieldsProps:s});case"FORMIK":return Object.assign(Object.assign({},e),{formik:t.formik});case"STEP":return Object.assign(Object.assign({},e),{steps:[...e.steps,t.id]});case"PREV_STEP":var n=e.actualStep;return Object.assign(Object.assign({},e),{actualStep:0!==n?n-1:n});case"NEXT_STEP":var{actualStep:s,steps:n}=e;n=n.length-1;return Object.assign(Object.assign({},e),{actualStep:s!==n?e.actualStep+1:s});case"LOADING":return Object.assign(Object.assign({},e),{loading:t.loading});case"CLEAR":return u;default:return e}},p=()=>{var[t]=e.useContext(l);return t},b=()=>{const[,t]=e.useContext(l);var s=e.useCallback((e=>{t({type:"FORMIK",formik:e})}),[t]),a=e.useCallback((e=>{t({type:"PREPARE",input:e})}),[t]),r=e.useCallback((e=>t({type:"STEP",id:e})),[t]),i=e.useCallback((()=>t({type:"NEXT_STEP"})),[t]);return{setFormik:s,setPrepared:a,setStep:r,prevStep:e.useCallback((()=>t({type:"PREV_STEP"})),[t]),nextStep:i}};exports.FormProvider=a=>{const{children:r,loading:i}=a,n=t.__rest(a,["children","loading"]),[c,p]=e.useReducer(o,Object.assign(Object.assign({},u),n));return e.useEffect((()=>{p({type:"LOADING",loading:i})}),[i]),s.jsx(l.Provider,Object.assign({value:[c,p]},{children:r}),void 0)},exports.useFormActions=b,exports.useFormContext=p,exports.usePreparedInput=t=>{var{id:s,initialValue:a,validate:r}=t;const i=e.useRef(!1);var n=p().initialValues;const c=b().setPrepared;e.useEffect((()=>{i.current||(c(t),i.current=!0)}),[s,a,c,r,n,t])};
//# sourceMappingURL=useFormContext-33c167b2.js.map