import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { Avatar, AvatarFallback } from '@/components/ui/avatar'; import { SquarePen, Power, Trash2, CircleCheck } from 'lucide-react'; interface TableUser { id: string; name: string; email: string; role: 'ADMIN' | 'MANAGEMENT' | 'USER'; department: string; status: 'active' | 'inactive'; } interface UserTableProps { users: TableUser[]; onEdit: (userId: string) => void; onToggleStatus: (userId: string) => void; onDelete: (userId: string) => void; } const getRoleBadgeColor = (role: string) => { switch (role.toUpperCase()) { case 'ADMIN': return 'bg-yellow-100 text-yellow-800 border-yellow-200'; case 'MANAGEMENT': return 'bg-blue-100 text-blue-800 border-blue-200'; case 'USER': return 'bg-gray-100 text-gray-800 border-gray-200'; default: return 'bg-gray-100 text-gray-800 border-gray-200'; } }; const getUserInitials = (name: string) => { return name .split(' ') .map(n => n[0]) .join('') .toUpperCase() .substring(0, 2); }; export function UserTable({ users, onEdit, onToggleStatus, onDelete }: UserTableProps) { return (
User Role Department Status Actions {users.length === 0 ? ( No users found ) : ( users.map((user) => (
{getUserInitials(user.name)}

{user.name}

{user.email}

{user.role} {user.department} {user.status}
)) )}
); }