import { DataTableColumnHeader } from '@/components/data-table-column-header'; import { Button } from '@/components/ui/button'; import { Switch } from '@/components/ui/switch'; import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'; import { UserInfo } from '@/components/user-info'; import { usePermission } from '@/hooks/use-permission'; import userRoutes from '@/routes/user'; import type { User } from '@/types'; import { Link } from '@inertiajs/react'; import type { ColumnDef } from '@tanstack/react-table'; import { KeyRound, Pencil, Trash2 } from 'lucide-react'; interface ColumnProps { onResetPassword: (user: User) => void; onDelete: (user: User) => void; onToggleStatus: (user: User) => void; } export const getColumns = ({ onResetPassword, onDelete, onToggleStatus }: ColumnProps): ColumnDef[] => [ { accessorKey: "name", header: ({ column }) => ( ), meta: { title: "Nama dan Alamat Surel" }, cell: ({ row }) => { const user = row.original; return (
); } }, { accessorKey: "username", header: ({ column }) => ( ), meta: { title: "Nama Pengguna" }, }, { accessorFn: (row) => row.profile?.phone_number, id: "phone_number", header: ({ column }) => ( ), meta: { title: "Nomor Telepon" }, }, { accessorKey: "is_active", header: "Status", meta: { title: "Status" }, cell: ({ row }) => { const user = row.original; const { hasPermission } = usePermission(); return ( onToggleStatus(user)} disabled={!hasPermission('ToggleStatus:User')} /> ); } }, { id: "actions", header: "Aksi", cell: ({ row }) => { const user = row.original; const { hasPermission } = usePermission(); return (
{hasPermission('ResetPassword:User') && (

Reset Kata Sandi

)} {hasPermission('Edit:User') && (

Ubah

)} {hasPermission('Delete:User') && (

Hapus

)}
); }, meta: { title: "Aksi" }, }, ];