UNPKG

ponchojs

Version:

Poncho

3 lines (2 loc) 2 kB
"use strict";var e=require("./emotion-react-jsx-runtime.esm-1fb36074.js"),t=require("@material-ui/styles"),s=require("formik"),n=require("react"),i=require("./useFormContext-33c167b2.js"),r=require("./button.js");const o=n.createContext({}),a=()=>n.useContext(o),l=t.makeStyles((()=>({formRoot:{display:"flex",flexDirection:"column"},btnRoot:{alignSelf:"flex-end",marginTop:16,marginBottom:16}})));exports.ConfigurationProvider=t=>{const{children:s,noBtns:i,size:r,submitText:a,subtitle:l,title:u,btns:c,resetText:b,disableBtns:d,extraBtns:m}=t,[x,g]=n.useState({noBtns:i,size:r,submitText:a,subtitle:l,title:u,resetText:b,btns:c,disableBtns:d,extraBtns:m});return n.useEffect((()=>{g((e=>Object.assign(Object.assign({},e),{noBtns:i,size:r,submitText:a,subtitle:l,title:u,btns:c,resetText:b,disableBtns:d,extraBtns:m})))}),[i,r,a,l,u,c,b,d,m]),e.jsx(o.Provider,Object.assign({value:x},{children:s}),void 0)},exports.FormBtns=()=>{var t=l();const{loading:o,steps:u,actualStep:c}=i.useFormContext(),{noBtns:b,submitText:d,btns:m,resetText:x,disableBtns:g,extraBtns:v}=a(),j=d||"Enviar",B=x||"Deshacer cambios",{handleSubmit:C,resetForm:p}=s.useFormikContext(),{nextStep:f,prevStep:h}=i.useFormActions(),T=n.useCallback((()=>{var t=1<u.length;const s=c===u.length-1;return t?e.jsxs(e.Fragment,{children:[0!==c&&e.jsx(r.Button,Object.assign({onClick:h,disabled:o||g},{children:"Anterior"}),void 0),e.jsx(r.Button,Object.assign({loading:o,variant:"success",className:"ml-2",disabled:g,onClick:()=>{(s?C:f)()}},{children:s?j:"Siguiente"}),void 0)]},void 0):null===(t=m||["submit"])||void 0===t?void 0:t.sort(((e,t)=>e.localeCompare(t))).map((t=>e.jsx(r.Button,Object.assign({loading:o,disabled:g,variant:"reset"===t?"link":"success",className:"ml-2",onClick:()=>{("reset"===t?p:C)()}},{children:"reset"===t?B:j}),t)))}),[C,o,u,j,c,f,h,m,B,p,g]);return b?null:e.jsxs("div",Object.assign({className:t.btnRoot},{children:[v,T()]}),void 0)},exports.useConfCtx=a; //# sourceMappingURL=FormBtns-b9f5dbec.js.map