PageSourceSearch

https://giftlove-novo.lovable.app/assets/UserCreate-BUJMkWh5.js

js giftlove-novo.lovable.app collected 2026-10-03 03:29:03 UTC 6,019 bytes, 1 lines download raw bytes

1import{j as e}from"./vendor-motion-D_eWtC2i.js";import{u as g,t as C}from"./zod-Crx0Yaxq.js";import{z as i}from"./index-CC9WNRK1.js";import{T as w,a4 as y,O as h,B as x,A as _,m as b,K as v,h as E}from"./index-BB35H7Wo.js";import{I as j}from"./input-ChxEbcIp.js";import{P as N}from"./phone-input-B_LEr2FS.js";import{C as S}from"./checkbox-CK6nSSdh.js";import{F,a as t,b as m,c as l,d as c,e as u}from"./form-Cli8Z-mm.js";import{S as P,a as T,b as U,c as k,d as O}from"./select-x5tgiaXZ.js";import{P as A}from"./PageHeader-B-h5e2bL.js";import{g as I,m as L,E as V}from"./requestUtils-KlGHkH-V.js";import{u as H}from"./useEnhancedUserManagement-DYlaMLTm.js";import{u as R}from"./vendor-react-C5-rmG_I.js";import"./vendor-supabase-CfDyWxaF.js";import"./vendor-charts-BzSnLuq2.js";import"./index-DIM_8Vrg.js";import"./index-Bnb-0OWf.js";import"./label-BS3ES4Lh.js";import"./index-BdQq_4o_.js";import"./chevron-up-BItnVi1a.js";import"./adminSearch-DyEZpJvp.js";import"./Admin-DYqUQ8os.js";import"./AppMenuTrigger-CF53lBez.js";import"./chevron-left-Db_mhCJ-.js";import"./skeleton-BMFUsGhM.js";import"./globe-njR3ySAJ.js";import"./wifi-Cx6xWYpT.js";import"./tag-DGXjfcQK.js";import"./landmark-Cc56kQhC.js";import"./arrow-down-to-line-6TjB66VU.js";import"./trending-down-BVd6xgTD.js";import"./trending-up-D8pW3Xds.js";import"./wallet-BsM7_cpn.js";import"./banknote-axFwXUwY.js";import"./circle-check-big-CW6q8PtM.js";import"./shield-alert-B59zc2rE.js";import"./upload-BK7QTj6s.js";import"./eye-DAsjP4BZ.js";import"./file-pen-line-sQCZ4xfd.js";import"./popover-DRwV6sJm.js";import"./formatters-BbQV9_Rj.js";import"./en-US-BMDxpvZG.js";import"./formatDistanceToNow-BgU-Tigt.js";import"./format-CXUDrD0n.js";import"./pt-BR-CvHFxr10.js";import"./package-CHH6xLst.js";import"./check-check-ChqRzE5G.js";import"./ProtectedComponent-eOqF_vGs.js";import"./breadcrumb-Chm8b2r7.js";import"./useBlogCategories-CcyYVV9j.js";const q=()=>{const d=w();return y({mutationFn:async n=>{const p=await I(),o=await L(V,{method:"POST",headers:p,body:JSON.stringify(n)});if(!o.ok){const r=await o.text();throw console.error("Erro HTTP:",o.status,r),new Error(`Erro HTTP ${o.status}: ${r}`)}const s=await o.json();if(s!=null&&s.error)throw new Error(s.error);return s},onSuccess:()=>{h.success("Usuário criado com sucesso!"),d.invalidateQueries({queryKey:["users-with-roles"]})},onError:n=>{console.error("Erro ao criar usuário:",n),h.error("Erro ao criar usuário: "+n.message)}})},M=i.object({email:i.string().email("Email inválido"),password:i.string().min(6,"A senha deve ter pelo menos 6 caracteres"),full_name:i.string().min(3,"O nome deve ter pelo menos 3 caracteres"),phone:i.string().min(10,"Telefone deve ter pelo menos 10 dígitos").optional(),role:i.enum(["usuario","viewer","editor","moderator","admin","super_admin","partner"]).optional(),send_email_confirmation:i.boolean().default(!0)}),He=()=>{const d=R(),{roleLabels:n}=H(),p=q(),o=g({resolver:C(M),defaultValues:{email:"",password:"",full_name:"",phone:"",role:"usuario",send_email_confirmation:!0}}),s=async r=>{try{const a={email:r.email,password:r.password,full_name:r.full_name,phone:r.phone,role:r.role||"usuario",send_email_confirmation:r.send_email_confirmation};await p.mutateAsync(a),h.success("Usuário criado com sucesso!",{description:r.send_email_confirmation?`Um email de confirmação foi enviado para ${r.email}`:void 0}),d("/admin/users")}catch(a){console.error("Erro ao criar usuário:",a),h.error("Erro ao criar usuário",{description:a.message})}};return e.jsxs("div",{className:"p-4 md:p-6 space-y-6 max-w-2xl",children:[e.jsx(A,{title:"Criar Novo Usuário",description:"Preencha os dados abaixo para criar um novo usuário no sistema.",children:e.jsxs(x,{variant:"outline",onClick:()=>d("/admin/users"),children:[e.jsx(_,{className:"mr-2 h-4 w-4"})," Voltar"]})}),e.jsx(b,{children:e.jsx(v,{className:"p-4 md:p-6",children:e.jsx(F,{...o,children:e.jsxs("form",{onSubmit:o.handleSubmit(s),className:"space-y-4",children:[e.jsx(t,{control:o.control,name:"full_name",render:({field:r})=>e.jsxs(m,{children:[e.jsx(l,{children:"Nome completo"}),e.jsx(c,{children:e.jsx(j,{placeholder:"Nome do usuário",...r})}),e.jsx(u,{})]})}),e.jsx(t,{control:o.control,name:"phone",render:({field:r})=>e.jsxs(m,{children:[e.jsx(l,{children:"Telefone"}),e.jsx(c,{children:e.jsx(N,{value:r.value||"",onChange:r.onChange,placeholder:"+55 (11) 99999-9999"})}),e.jsx(u,{})]})}),e.jsx(t,{control:o.control,name:"email",render:({field:r})=>e.jsxs(m,{children:[e.jsx(l,{children:"Email"}),e.jsx(c,{children:e.jsx(j,{type:"email",placeholder:"[email protected]",...r})}),e.jsx(u,{})]})}),e.jsx(t,{control:o.control,name:"password",render:({field:r})=>e.jsxs(m,{children:[e.jsx(l,{children:"Senha"}),e.jsx(c,{children:e.jsx(j,{type:"password",placeholder:"******",...r})}),e.jsx(u,{})]})}),e.jsx(t,{control:o.control,name:"role",render:({field:r})=>e.jsxs(m,{children:[e.jsx(l,{children:"Perfil de Acesso"}),e.jsxs(P,{onValueChange:r.onChange,defaultValue:r.value,children:[e.jsx(c,{children:e.jsx(T,{children:e.jsx(U,{placeholder:"Selecione um perfil"})})}),e.jsx(k,{children:Object.entries(n).map(([a,f])=>e.jsx(O,{value:a,children:f},a))})]}),e.jsx(u,{})]})}),e.jsx(t,{control:o.control,name:"send_email_confirmation",render:({field:r})=>e.jsxs(m,{className:"flex flex-row items-start space-x-3 space-y-0 rounded-md border p-4",children:[e.jsx(c,{children:e.jsx(S,{checked:r.value,onCheckedChange:r.onChange})}),e.jsxs("div",{className:"space-y-1 leading-none",children:[e.jsx(l,{children:"Enviar email de confirmação"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"O usuário receberá um email para confirmar a conta"})]})]})}),e.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[e.jsx(x,{type:"button",variant:"outline",onClick:()=>d("/admin/users"),children:"Cancelar"}),e.jsxs(x,{type:"submit",disabled:p.isPending,children:[p.isPending&&e.jsx(E,{className:"mr-2 h-4 w-4 animate-spin"}),"Criar Usuário"]})]})]})})})})]})};export{He 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.