1import{ao as W,r as t,u as M,a0 as T,c as E,e as F,ab as d,j as e,F as f,i as j,T as o,B as b,a as g,p as C,k as m,H as D,C as G}from"./index-DWQbq_Uo.js";import{C as v}from"./Card-Bc6ZyAVD.js";import{C as A}from"./CircularProgress-DfffzK2t.js";import{C as V}from"./CardContent-8KEVlnWT.js";import{G as i}from"./Grid2-DMVFYTGL.js";import{F as I}from"./FormGroup-DSbbM_ZR.js";import{F as N}from"./FormControlLabel-CtMMxhjV.js";import{C as q}from"./Checkbox-BtmEmZTJ.js";function z(){const n=W();return t.useMemo(()=>n,[n])}const L=[{id:"PSB",name:"Pabbly Subscription Billing"},{id:"PEM",name:"Pabbly Email Marketing"},{id:"PFB",name:"Pabbly Form Builder"},{id:"PEV",name:"Pabbly Email Verification"},{id:"PEM-V2",name:"Pabbly Email Marketing V2"},{id:"PCF",name:"Pabbly Connect Flows"}];function H(){const n=M(),S=z(),{isSuper:u}=T(),[U,y]=t.useState(!0),[x,_]=t.useState(!1),[r,h]=t.useState({first_name:"",last_name:"",email:"",mobile:"",address_line1:"",admin_apps:[]}),l=S.id,P=t.useCallback(async()=>{try{y(!0);const s=await E(F.admin.updateUser(l),"GET");s&&s.data&&h({first_name:s.data.first_name||"",last_name:s.data.last_name||"",email:s.data.email||"",mobile:s.data.mobile||"",address_line1:s.data.address_line1||"",admin_apps:s.data.admin_apps||[]})}catch(s){console.error("Error fetching user:",s),d.error("Failed to load user")}finally{y(!1)}},[l]);t.useEffect(()=>{u&&l&&P()},[P,u,l]);const c=s=>{const{name:a,value:p}=s.target;h(B=>({...B,[a]:p}))},k=s=>{h(a=>({...a,admin_apps:a.admin_apps.includes(s)?a.admin_apps.filter(p=>p!==s):[...a.admin_apps,s]}))},w=async s=>{if(s.preventDefault(),!r.first_name||!r.last_name){d.error("Please fill in all required fields");return}try{_(!0);const a=await E(F.admin.updateUser(l),"PUT",r);a&&a.status==="success"?(d.success("User updated successfully"),n.push(C.admin.users.root)):d.error((a==null?void 0:a.message)||"Failed to update user")}catch(a){console.error("Error updating user:",a),d.error("Failed to update user")}finally{_(!1)}};return u?U?e.jsx(f,{maxWidth:"md",children:e.jsx(b,{sx:{display:"flex",justifyContent:"center",py:10},children:e.jsx(A,{})})}):e.jsxs(f,{maxWidth:"md",children:[e.jsxs(b,{sx:{mb:5},children:[e.jsx(g,{startIcon:e.jsx(j,{icon:"mdi:arrow-left"}),onClick:()=>n.push(C.admin.users.root),sx:{mb:2},children:"Back to Users"}),e.jsx(o,{variant:"h4",sx:{mb:1},children:"Edit Admin User"}),e.jsx(o,{variant:"body2",color:"text.secondary",children:"Update admin user details and permissions"})]}),e.jsx(v,{children:e.jsx(V,{children:e.jsx("form",{onSubmit:w,children:e.jsxs(i,{container:!0,spacing:3,children:[e.jsx(i,{xs:12,md:6,children:e.jsx(m,{fullWidth:!0,required:!0,label:"First Name",name:"first_name",value:r.first_name,onChange:c})}),e.jsx(i,{xs:12,md:6,children:e.jsx(m,{fullWidth:!0,required:!0,label:"Last Name",name:"last_name",value:r.last_name,onChange:c})}),e.jsx(i,{xs:12,md:6,children:e.jsx(m,{fullWidth:!0,label:"Email",name:"email",type:"email",value:r.email,disabled:!0,helperText:"Email cannot be changed"})}),e.jsx(i,{xs:12,md:6,children:e.jsx(m,{fullWidth:!0,label:"Mobile",name:"mobile",value:r.mobile,onChange:c})}),e.jsx(i,{xs:12,children:e.jsx(m,{fullWidth:!0,label:"Address",name:"address_line1",value:r.address_line1,onChange:c,multiline:!0,rows:2})}),e.jsxs(i,{xs:12,children:[e.jsx(o,{variant:"subtitle2",sx:{mb:2},children:"Admin App Access"}),e.jsx(I,{row:!0,children:L.map(s=>e.jsx(N,{control:e.jsx(q,{checked:r.admin_apps.includes(s.id),onChange:()=>k(s.id)}),label:s.name},s.id))})]}),e.jsx(i,{xs:12,children:e.jsxs(b,{sx:{display:"flex",gap:2},children:[e.jsx(g,{type:"submit",variant:"contained",size:"large",disabled:x,startIcon:x?e.jsx(A,{size:20,color:"inherit"}):e.jsx(j,{icon:"mdi:content-save"}),children:x?"Saving...":"Save Changes"}),e.jsx(g,{variant:"outlined",size:"large",onClick:()=>n.push(C.admin.users.root),children:"Cancel"})]})})]})})})})]}):e.jsx(f,{maxWidth:"sm",children:e.jsxs(v,{sx:{p:5,textAlign:"center"},children:[e.jsx(j,{icon:"mdi:lock",width:64,sx:{color:"text.secondary",mb:2}}),e.jsx(o,{variant:"h6",sx:{mb:1},children:"Access Denied"}),e.jsx(o,{color:"text.secondary",children:"Only super admins can access this page."})]})})}function Z(){return e.jsxs(e.Fragment,{children:[e.jsx(D,{children:e.jsx("title",{children:`Admin - Edit User - ${G.site.name}`})}),e.jsx(H,{})]})}
1export{Z 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.