2 lines
5.8 KiB
JavaScript
2 lines
5.8 KiB
JavaScript
import{j as s}from"./vendor-query-a3e439f2.js";import{u as e,f as a,r}from"./vendor-react-ac1483bd.js";import{c as i,a as t,b as o,d,e as l,u as n}from"./vendor-forms-f89aa741.js";import{o as m}from"./yup-bff05cf1.js";import{b as u,c,d as p}from"./_hooks-e1033fd2.js";import{u as f}from"./_hooks-69d4323f.js";import{u as h}from"./_hooks-653fd77f.js";import{L as x,P as g,F as j,B as v}from"./index-590deac5.js";import{I as b}from"./Input-dc2009a3.js";import{M as _}from"./MultiSelectAutocomplete-a5a00ba6.js";import{z as y}from"./vendor-ui-8a3c5c7d.js";import"./_requests-35c9d4c3.js";import"./vendor-toast-598db4db.js";const w=i({first_name:t().required("نام الزامی است").min(2,"نام باید حداقل 2 کاراکتر باشد"),last_name:t().required("نام خانوادگی الزامی است").min(2,"نام خانوادگی باید حداقل 2 کاراکتر باشد"),username:t().required("نام کاربری الزامی است").min(3,"نام کاربری باید حداقل 3 کاراکتر باشد"),password:t().when("isEdit",{is:!1,then:s=>s.required("رمز عبور الزامی است").min(8,"رمز عبور باید حداقل 8 کاراکتر باشد"),otherwise:s=>s.notRequired().test("min-length","رمز عبور باید حداقل 8 کاراکتر باشد",function(s){return!s||s.length>=8})}),status:t().required("وضعیت الزامی است").oneOf(["active","deactive"],"وضعیت نامعتبر است"),permissions:o().of(d()).default([]),roles:o().of(d()).default([]),isEdit:l().default(!1)}),V=()=>{var i,t,o,d,l,V;const k=e(),{id:N}=a(),q=!!N,{data:E,isLoading:C}=u(N||"",q),{mutate:L,isPending:S}=c(),{mutate:D,isPending:I}=p(),{data:P,isLoading:B}=f(),{data:F,isLoading:M}=h(),z=S||I,{register:A,handleSubmit:O,formState:{errors:R,isValid:G,isDirty:H},setValue:J,watch:K}=n({resolver:m(w),mode:"onChange",defaultValues:{first_name:"",last_name:"",username:"",password:"",status:"active",permissions:[],roles:[],isEdit:q}});K();r.useEffect(()=>{var s,e;q&&E&&(J("first_name",E.first_name,{shouldValidate:!0}),J("last_name",E.last_name,{shouldValidate:!0}),J("username",E.username,{shouldValidate:!0}),J("status",E.status,{shouldValidate:!0}),J("permissions",(null==(s=E.permissions)?void 0:s.map(s=>s.id))||[],{shouldValidate:!0}),J("roles",(null==(e=E.roles)?void 0:e.map(s=>s.id))||[],{shouldValidate:!0}),J("isEdit",!0,{shouldValidate:!0}))},[q,E,J]);const Q=()=>{k("/admin-users")};if(q&&C)return s.jsx("div",{className:"flex justify-center items-center h-64",children:s.jsx(x,{})});const T=s.jsxs(v,{variant:"secondary",onClick:Q,className:"flex items-center gap-2",children:[s.jsx(y,{className:"h-4 w-4"}),"بازگشت"]});return s.jsxs(g,{className:"max-w-2xl mx-auto",children:[s.jsx(j,{title:q?"ویرایش کاربر ادمین":"ایجاد کاربر ادمین جدید",subtitle:q?"ویرایش اطلاعات کاربر ادمین":"اطلاعات کاربر ادمین جدید را وارد کنید",backButton:T}),s.jsx("div",{className:"card p-4 sm:p-6",children:s.jsxs("form",{onSubmit:O(s=>{q&&N?D({id:N,userData:{id:parseInt(N),first_name:s.first_name,last_name:s.last_name,username:s.username,password:s.password&&s.password.trim()?s.password:void 0,status:s.status,permissions:s.permissions,roles:s.roles}},{onSuccess:()=>{k("/admin-users")}}):L({first_name:s.first_name,last_name:s.last_name,username:s.username,password:s.password||"",status:s.status,permissions:s.permissions,roles:s.roles},{onSuccess:s=>{k("/admin-users")},onError:s=>{}})}),className:"space-y-4 sm:space-y-6",children:[s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[s.jsx(b,{label:"نام",...A("first_name"),error:null==(i=R.first_name)?void 0:i.message,placeholder:"نام کاربر"}),s.jsx(b,{label:"نام خانوادگی",...A("last_name"),error:null==(t=R.last_name)?void 0:t.message,placeholder:"نام خانوادگی کاربر"})]}),s.jsx(b,{label:"نام کاربری",...A("username"),error:null==(o=R.username)?void 0:o.message,placeholder:"نام کاربری"}),s.jsx(b,{label:q?"رمز عبور (اختیاری)":"رمز عبور",type:"password",...A("password"),error:null==(d=R.password)?void 0:d.message,placeholder:q?"رمز عبور جدید (در صورت تمایل به تغییر)":"رمز عبور"}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[s.jsx(_,{label:"دسترسیها",options:(P||[]).map(s=>({id:s.id,title:s.title,description:s.description})),selectedValues:K("permissions")||[],onChange:s=>J("permissions",s,{shouldValidate:!0}),placeholder:"انتخاب دسترسیها...",isLoading:B,error:null==(l=R.permissions)?void 0:l.message}),s.jsx(_,{label:"نقشها",options:(F||[]).map(s=>({id:s.id,title:s.title,description:s.description})),selectedValues:K("roles")||[],onChange:s=>J("roles",s,{shouldValidate:!0}),placeholder:"انتخاب نقشها...",isLoading:M,error:null==(V=R.roles)?void 0:V.message})]}),s.jsxs("div",{children:[s.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"وضعیت"}),s.jsxs("select",{...A("status"),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md focus:outline-none focus:ring-1 focus:ring-primary-500 dark:bg-gray-700 dark:text-gray-100",children:[s.jsx("option",{value:"active",children:"فعال"}),s.jsx("option",{value:"deactive",children:"غیرفعال"})]}),R.status&&s.jsx("p",{className:"text-red-500 text-sm mt-1",children:R.status.message})]}),s.jsxs("div",{className:"flex justify-end space-x-4 space-x-reverse pt-6 border-t border-gray-200 dark:border-gray-600",children:[s.jsx(v,{type:"button",variant:"secondary",onClick:Q,disabled:z,children:"انصراف"}),s.jsx(v,{type:"submit",loading:z,disabled:!G||z,children:q?"بهروزرسانی":"ایجاد"})]})]})})]})};export{V as default};
|