PageSourceSearch

https://app.stoqui.com.br/assets/SupplierFormPage-dUdvpWTX.js

js stoqui.com.br collected 2026-09-24 11:58:43 UTC 5,675 bytes, 1 lines download raw bytes

1import{j as r,ab as S,z as p,a7 as b,ad as w}from"./mui-CRsYZxVY.js";import{y as _,z as u,B as T,f2 as E,eS as C,ek as D,bc as F,C as N,F as P,D as f,el as R,P as I,u as W,w as j,J as k,b as q,T as z}from"./index-TALscxEc.js";import{L as A}from"./lab-DSem1Osk.js";import{u as B}from"./useSupplier-DvF4zMpW.js";import{a as O,b as V}from"./query-8ViTdhdk.js";import"./vendor-Dwao9eNC.js";import"./datePickers-BIJXYOKG.js";import"./icons-D8aatgQ4.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"2ad85febf9735404429b0670d4acf56a0af5a0a2"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new e.Error().stack;o&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[o]="54448aa0-f4f6-4633-9c3d-15b4d477fad4",e._sentryDebugIdIdentifier="sentry-dbid-54448aa0-f4f6-4633-9c3d-15b4d477fad4")})()}catch{}const J=_().shape({nome:u().required("Nome é obrigatório").max(100,"Nome muito longo"),telefone:u().nullable().test("phone-valid","Telefone inválido",e=>e?T(e):!0).transform(E),email:u().nullable().transform(e=>e===""?null:e).email("Email inválido"),observacoes:u().nullable().transform(e=>e===""?null:e).max(500,"Observações muito longas"),endereco:u().nullable().transform(e=>e===""?null:e).max(200,"Endereço muito longo"),cpf_cnpj:u().nullable().transform(e=>e===""?null:e).test("document-validation","CPF/CNPJ inválido",e=>{if(!e)return!0;const o=e.replace(/\D/g,"");return o.length===11?C.isValid(o):o.length===14?D.isValid(o):!1}),nome_responsavel:u().nullable().transform(e=>e===""?null:e).max(100,"Nome muito longo")}),L=({onSubmit:e,initialData:o,isSubmitting:l=!1})=>{var v;const{isDesktop:d,drawerWidth:m}=F(),{control:i,handleSubmit:h,formState:{errors:n,isDirty:x},setError:g}=N({resolver:P(J),shouldFocusError:!0,defaultValues:o||{nome:"",telefone:"",email:"",observacoes:"",endereco:"",cnpj:"",nome_responsavel:""}}),y=async a=>{try{await e(a)}catch(s){s.field?g(s.field,{type:"manual",message:s.message}):g("root.serverError",{type:"manual",message:s.message||"Erro ao salvar fornecedor"})}};return r.jsxs("form",{onSubmit:h(y),children:[r.jsxs(S,{spacing:3,children:[r.jsx(f,{name:"nome",control:i,render:({field:{ref:a,...s}})=>{var t;return r.jsx(p,{...s,inputRef:a,label:"Nome do fornecedor *",error:!!n.nome,helperText:(t=n.nome)==null?void 0:t.message,fullWidth:!0})}}),r.jsx(f,{name:"nome_responsavel",control:i,render:({field:{ref:a,...s}})=>{var t;return r.jsx(p,{...s,inputRef:a,label:"Nome do responsável",error:!!n.nome_responsavel,helperText:(t=n.nome_responsavel)==null?void 0:t.message,fullWidth:!0})}}),r.jsx(f,{name:"cpf_cnpj",control:i,render:({field:{ref:a,...s}})=>r.jsx(R,{mask:(s.value||"").length>14?"99.999.999/9999-99":"999.999.999-999",value:s.value||"",onChange:s.onChange,maskChar:null,children:t=>{var c;return r.jsx(p,{...t,inputRef:a,label:"CPF/CNPJ",error:!!n.cpf_cnpj,helperText:(c=n.cpf_cnpj)==null?void 0:c.message,fullWidth:!0})}})}),r.jsx(f,{name:"telefone",control:i,render:({field:{ref:a,value:s,...t}})=>{var c;return r.jsx(I,{...t,value:s||"",inputRef:a,label:"Telefone",error:!!n.telefone,helperText:(c=n.telefone)==null?void 0:c.message,fullWidth:!0})}}),r.jsx(f,{name:"email",control:i,render:({field:{ref:a,...s}})=>{var t;return r.jsx(p,{...s,inputRef:a,label:"Email",type:"email",error:!!n.email,helperText:(t=n.email)==null?void 0:t.message,fullWidth:!0})}}),r.jsx(f,{name:"endereco",control:i,render:({field:{ref:a,...s}})=>{var t;return r.jsx(p,{...s,inputRef:a,label:"Endereço",error:!!n.endereco,helperText:(t=n.endereco)==null?void 0:t.message,fullWidth:!0})}}),r.jsx(f,{name:"observacoes",control:i,render:({field:{ref:a,...s}})=>{var t;return r.jsx(p,{...s,inputRef:a,label:"Observações",multiline:!0,rows:4,error:!!n.observacoes,helperText:(t=n.observacoes)==null?void 0:t.message,fullWidth:!0})}}),r.jsx(b,{sx:{pb:12}})]}),r.jsxs(b,{sx:{position:"fixed",bottom:0,left:d?`${m}px`:0,right:0,p:2,pb:"calc(1rem + var(--safe-area-inset-bottom, 0px))",bgcolor:"white",borderTop:"1px solid",borderColor:"divider",zIndex:1300}
1,children:[((v=n.root)==null?void 0:v.serverError)&&r.jsx(b,{sx:{mb:2},children:r.jsx(w,{severity:"error",children:n.root.serverError.message})}),r.jsx(A,{type:"submit",variant:"contained",fullWidth:!0,loading:l,disabled:!x,size:"large",sx:{py:1.5,textTransform:"none",fontWeight:600,fontSize:"1rem"},children:x?o?"Salvar alterações":"Cadastrar fornecedor":"Salvo"})]})]})},Q=async(e,o)=>{if(!o)throw new Error("User not authenticated");if(e.id){const{error:l}=await j.from("fornecedor").update({nome:e.nome,telefone:e.telefone,email:e.email,observacoes:e.observacoes,endereco:e.endereco,cpf_cnpj:e.cpf_cnpj,nome_responsavel:e.nome_responsavel,atualizado_em:new Date().toISOString()}).eq("id",e.id).eq("user_id",o);if(l)throw l}else{const{error:l}=await j.from("fornecedor").insert({...e,user_id:o});if(l)throw l}},$=()=>{const e=O(),{user:o}=W(),l=o==null?void 0:o.id;return V({mutationFn:d=>Q(d,l),onSuccess:(d,m)=>{e.invalidateQueries({queryKey:["suppliers"]}),m.id&&e.invalidateQueries({queryKey:["supplier",m.id]})}})},ee=()=>{const{supplierId:e}=k(),o=q(),l=e?Number(e):void 0,d=!!l,{data:m}=B(l??0,{enabled:d}),{mutateAsync:i,isPending:h}=$(),n=async x=>{await i({id:l,...x}),o(-1)};return r.jsxs(b,{sx:{display:"flex",flexDirection:"column"},children:[r.jsx(z,{title:d?"Editar fornecedor":"Novo fornecedor",navigateBack:!0}),r.jsx(b,{sx:{flex:1,overflow:"auto",p:2},children:r.jsx(L,{onSubmit:n,initialData:m??void 0,isSubmitting:h})})]})};export{ee as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.