import { ConfirmDialog } from '@/components/confirm-dialog'; import { DataTable } from '@/components/data-table'; import { Button } from '@/components/ui/button'; import { index as rolesIndex, create as roleCreate, edit as roleEdit, destroy as roleDestroy } from '@/routes/admin/settings/roles'; import { Head, router } from '@inertiajs/react'; import { Plus } from 'lucide-react'; import { useState } from 'react'; import { createRoleColumns, type Role } from './columns'; type Props = { roles: Role[]; }; export default function RoleIndex({ roles }: Props) { const [deleting, setDeleting] = useState(null); function handleDelete() { if (!deleting) { return; } router.delete(roleDestroy.url(deleting.id), { onSuccess: () => setDeleting(null), }); } const columns = createRoleColumns({ handleEdit: (role) => { window.location.href = roleEdit.url(role.id); }, handleDeleteClick: (role) => setDeleting(role), }); return ( <>

Role & Permission

{ if (!open) { setDeleting(null); } }} title="Hapus Role" description={`Apakah Anda yakin ingin menghapus role "${deleting?.name}"? Semua user dengan role ini akan kehilangan permission terkait.`} confirmLabel="Hapus" onConfirm={handleDelete} />
); } RoleIndex.layout = { breadcrumbs: [ { title: 'Pengaturan', href: '/admin/settings', }, { title: 'Role & Permission', href: rolesIndex.url(), }, ], };