admin/dist/assets/RolePermissionsPage-7d18a97...

2 lines
4.5 KiB
JavaScript

import{j as e}from"./vendor-query-a3e439f2.js";import{u as s,f as r,r as a}from"./vendor-react-ac1483bd.js";import{b as d,e as i,f as t,g as l,h as n}from"./_hooks-653fd77f.js";import{L as c,B as x}from"./index-590deac5.js";import{M as m}from"./Modal-8110908d.js";import{z as o,y as g,m as j}from"./vendor-ui-8a3c5c7d.js";import"./_requests-35c9d4c3.js";import"./vendor-toast-598db4db.js";const h=()=>{const h=s(),{id:p=""}=r();a.useState(!1);const[y,v]=a.useState(null),{data:N,isLoading:f}=d(p),{data:u,isLoading:b}=i(p),{data:k,isLoading:w}=t(),C=(u||[]).map(e=>e.id),S=(Array.isArray(null==k?void 0:k.permissions)?k.permissions:[]).filter(e=>!C.includes(e.id)),{mutate:I,isPending:L}=l(),{mutate:z,isPending:A}=n();return f||b?e.jsx(c,{}):N?e.jsx("div",{className:"p-6",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs(x,{variant:"secondary",onClick:()=>h("/roles"),className:"flex items-center gap-2",children:[e.jsx(o,{className:"h-4 w-4"}),"بازگشت"]}),e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-gray-900 dark:text-gray-100",children:["مدیریت دسترسی‌های نقش: ",null==N?void 0:N.title]}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mt-1",children:"تخصیص و حذف دسترسی‌ها برای این نقش"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow-md",children:[e.jsx("div",{className:"p-6 border-b border-gray-200 dark:border-gray-700",children:e.jsxs("h2",{className:"text-lg font-semibold text-gray-900 dark:text-gray-100",children:["دسترسی‌های تخصیص یافته (",(u||[]).length,")"]})}),e.jsx("div",{className:"p-6",children:b?e.jsx("div",{className:"flex justify-center",children:e.jsx(c,{})}):e.jsx("div",{className:"space-y-3",children:(u||[]).length>0?(u||[]).map(s=>e.jsxs("div",{className:"flex items-center justify-between p-3 bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 rounded-lg",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"font-medium text-green-900 dark:text-green-100",children:s.title}),e.jsx("p",{className:"text-sm text-green-700 dark:text-green-300",children:s.description})]}),e.jsxs(x,{size:"sm",variant:"danger",onClick:()=>{return e=s.id,void v(e.toString());var e},className:"flex items-center gap-1 ml-3",children:[e.jsx(g,{className:"h-3 w-3"}),"حذف"]})]},s.id)):e.jsx("p",{className:"text-center text-gray-500 dark:text-gray-400 py-8",children:"هیچ دسترسی تخصیص داده نشده است"})})})]}),e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow-md",children:[e.jsx("div",{className:"p-6 border-b border-gray-200 dark:border-gray-700",children:e.jsxs("h2",{className:"text-lg font-semibold text-gray-900 dark:text-gray-100",children:["دسترسی‌های قابل تخصیص (",S.length,")"]})}),e.jsx("div",{className:"p-6",children:w?e.jsx("div",{className:"flex justify-center",children:e.jsx(c,{})}):e.jsx("div",{className:"space-y-3",children:S.length>0?S.map(s=>e.jsxs("div",{className:"flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-700 border border-gray-200 dark:border-gray-600 rounded-lg",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"font-medium text-gray-900 dark:text-gray-100",children:s.title}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:s.description})]}),e.jsxs(x,{size:"sm",variant:"primary",onClick:()=>{return e=s.id,void I({roleId:p,permissionId:e.toString()});var e},className:"flex items-center gap-1 ml-3",loading:L,children:[e.jsx(j,{className:"h-3 w-3"}),"اختصاص"]})]},s.id)):e.jsx("p",{className:"text-center text-gray-500 dark:text-gray-400 py-8",children:"تمام دسترسی‌ها به این نقش تخصیص داده شده است"})})})]})]}),e.jsx(m,{isOpen:!!y,onClose:()=>v(null),title:"حذف دسترسی",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"آیا از حذف این دسترسی از نقش اطمینان دارید؟"}),e.jsxs("div",{className:"flex justify-end space-x-2 space-x-reverse",children:[e.jsx(x,{variant:"secondary",onClick:()=>v(null),disabled:A,children:"انصراف"}),e.jsx(x,{variant:"danger",onClick:()=>{y&&z({roleId:p,permissionId:y},{onSuccess:()=>{v(null)}})},loading:A,children:"حذف"})]})]})})]})}):e.jsx("div",{className:"text-red-600",children:"نقش یافت نشد"})};export{h as default};