2 lines
6.6 KiB
JavaScript
2 lines
6.6 KiB
JavaScript
import{j as e}from"./vendor-query-a3e439f2.js";import{u as s,f as r,r as i}from"./vendor-react-ac1483bd.js";import{c as a,a as t,b as l,u as n,f as d}from"./vendor-forms-f89aa741.js";import{o}from"./yup-bff05cf1.js";import{b as c,c as m,d as p}from"./_hooks-8b9f7cf5.js";import{L as u,P as x,F as j,f as g,B as h}from"./index-590deac5.js";import{I as v}from"./Input-dc2009a3.js";import{m as b,y as f,z as y}from"./vendor-ui-8a3c5c7d.js";import"./_requests-35c9d4c3.js";import"./vendor-toast-598db4db.js";const N=a({title:t().required("عنوان نگهداری الزامی است"),description:t().required("توضیحات نگهداری الزامی است"),content:t().required("محتوای نگهداری الزامی است"),image:t().required("تصویر نگهداری الزامی است")}),q=a({title:t().required("عنوان گزینه الزامی است"),description:t().required("توضیحات گزینه الزامی است"),meta_title:t().required("متا تایتل الزامی است")}),k=a({title:t().required("عنوان الزامی است").min(2,"عنوان باید حداقل 2 کاراکتر باشد"),description:t().required("توضیحات الزامی است"),maintenance:N.required("اطلاعات نگهداری الزامی است"),options:l().of(q).min(1,"حداقل یک گزینه باید وارد شود").required("گزینهها الزامی است")}),w=()=>{var a,t,l,N,q,w,V,_,C,S;const I=s(),{id:P}=r(),$=!!P,{data:B,isLoading:L}=c(P||"",$),{mutate:z,isPending:E}=m(),{mutate:F,isPending:G}=p(),A=E||G,{register:D,handleSubmit:H,formState:{errors:J,isValid:K},setValue:M,watch:O,control:Q}=n({resolver:o(k),mode:"onChange",defaultValues:{title:"",description:"",maintenance:{title:"",description:"",content:"",image:""},options:[]}}),{fields:R,append:T,remove:U}=d({control:Q,name:"options"});O(),i.useEffect(()=>{$&&B&&(M("title",B.title,{shouldValidate:!0}),M("description",B.description,{shouldValidate:!0}),M("maintenance",B.maintenance,{shouldValidate:!0}),M("options",B.options,{shouldValidate:!0}))},[$,B,M]);if(L)return e.jsx("div",{className:"flex items-center justify-center min-h-screen",children:e.jsx(u,{})});const W=e.jsxs(h,{variant:"secondary",onClick:()=>I("/product-options"),className:"flex items-center gap-2",children:[e.jsx(y,{className:"h-4 w-4"}),"برگشت"]});return e.jsxs(x,{className:"max-w-4xl mx-auto",children:[e.jsx(j,{title:$?"ویرایش گزینه محصول":"ایجاد گزینه محصول جدید",subtitle:"اطلاعات گزینه محصول را وارد کنید",backButton:W}),e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"p-4 sm:p-6 border-b border-gray-200 dark:border-gray-700",children:e.jsx(g,{children:"اطلاعات اصلی"})}),e.jsxs("form",{onSubmit:H(e=>{$&&P?F({id:parseInt(P),...e},{onSuccess:()=>{I("/product-options")}}):z(e,{onSuccess:()=>{I("/product-options")}})}),className:"p-6 space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsx("div",{children:e.jsx(v,{label:"عنوان",...D("title"),error:null==(a=J.title)?void 0:a.message,placeholder:"عنوان گزینه محصول را وارد کنید"})}),e.jsx("div",{children:e.jsx(v,{label:"توضیحات",...D("description"),error:null==(t=J.description)?void 0:t.message,placeholder:"توضیحات گزینه محصول را وارد کنید"})})]}),e.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:[e.jsx(g,{className:"mb-4",children:"اطلاعات نگهداری"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsx(v,{label:"عنوان نگهداری",...D("maintenance.title"),error:null==(N=null==(l=J.maintenance)?void 0:l.title)?void 0:N.message,placeholder:"عنوان نگهداری را وارد کنید"}),e.jsx(v,{label:"توضیحات نگهداری",...D("maintenance.description"),error:null==(w=null==(q=J.maintenance)?void 0:q.description)?void 0:w.message,placeholder:"توضیحات نگهداری را وارد کنید"}),e.jsx(v,{label:"محتوای نگهداری",...D("maintenance.content"),error:null==(_=null==(V=J.maintenance)?void 0:V.content)?void 0:_.message,placeholder:"محتوای نگهداری را وارد کنید"}),e.jsx(v,{label:"تصویر نگهداری",...D("maintenance.image"),error:null==(S=null==(C=J.maintenance)?void 0:C.image)?void 0:S.message,placeholder:"آدرس تصویر نگهداری را وارد کنید"})]})]}),e.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsx(g,{children:"گزینهها"}),e.jsxs(h,{type:"button",variant:"primary",onClick:()=>{T({title:"",description:"",meta_title:""})},className:"flex items-center gap-2",children:[e.jsx(b,{className:"h-4 w-4"}),"افزودن گزینه"]})]}),R.map((s,r)=>{var i,a,t,l,n,d,o,c,m;return e.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded-lg p-4 mb-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("h4",{className:"text-md font-medium text-gray-900 dark:text-gray-100",children:["گزینه ",r+1]}),e.jsxs(h,{type:"button",variant:"danger",onClick:()=>U(r),className:"flex items-center gap-2",children:[e.jsx(f,{className:"h-4 w-4"}),"حذف"]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[e.jsx(v,{label:"عنوان",...D(`options.${r}.title`),error:null==(t=null==(a=null==(i=J.options)?void 0:i[r])?void 0:a.title)?void 0:t.message,placeholder:"عنوان گزینه را وارد کنید"}),e.jsx(v,{label:"توضیحات",...D(`options.${r}.description`),error:null==(d=null==(n=null==(l=J.options)?void 0:l[r])?void 0:n.description)?void 0:d.message,placeholder:"توضیحات گزینه را وارد کنید"}),e.jsx(v,{label:"متا تایتل",...D(`options.${r}.meta_title`),error:null==(m=null==(c=null==(o=J.options)?void 0:o[r])?void 0:c.meta_title)?void 0:m.message,placeholder:"متا تایتل را وارد کنید"})]})]},s.id)}),0===R.length&&e.jsx("div",{className:"text-center py-8 text-gray-500 dark:text-gray-400",children:"هیچ گزینهای تعریف نشده است. برای شروع گزینهای اضافه کنید."})]}),e.jsxs("div",{className:"flex justify-end gap-4 pt-6",children:[e.jsx(h,{type:"button",variant:"secondary",onClick:()=>I("/product-options"),disabled:A,children:"لغو"}),e.jsx(h,{type:"submit",variant:"primary",disabled:!K||A,loading:A,children:$?"ویرایش گزینه محصول":"ایجاد گزینه محصول"})]})]})]})]})};export{w as default};
|