'use client' import { useState } from 'react' import { Button } from '@/components/ui/button' import { deleteUser, updateUserRole } from '@/app/actions/admin' import { toast } from 'sonner' import { Trash2, Shield, ShieldOff } from 'lucide-react' import { format } from 'date-fns' import { useLanguage } from '@/lib/i18n' export function UserList({ initialUsers }: { initialUsers: any[] }) { const { t } = useLanguage() const handleDelete = async (id: string) => { if (!confirm(t('admin.users.confirmDelete'))) return try { await deleteUser(id) toast.success(t('admin.users.deleteSuccess')) } catch (e) { toast.error(t('admin.users.deleteFailed')) } } const handleRoleToggle = async (user: any) => { const newRole = user.role === 'ADMIN' ? 'USER' : 'ADMIN' try { await updateUserRole(user.id, newRole) toast.success(t('admin.users.roleUpdateSuccess', { role: newRole })) } catch (e) { toast.error(t('admin.users.roleUpdateFailed')) } } return (
| {t('admin.users.table.name')} | {t('admin.users.table.email')} | {t('admin.users.table.role')} | {t('admin.users.table.createdAt')} | {t('admin.users.table.actions')} |
|---|---|---|---|---|
| {user.name || t('common.notAvailable')} | {user.email} | {user.role === 'ADMIN' ? t('admin.users.roles.admin') : t('admin.users.roles.user')} | {format(new Date(user.createdAt), 'PP')} |
|