import React, { useState } from 'react'; import { useCRM } from '../context/CRMContext'; import { Shield, ShieldAlert, User as UserIcon, Check, X, MoreVertical, Edit2 } from 'lucide-react'; import { User } from '../types'; const Users: React.FC = () => { const { users, isAdmin, updateUserRole } = useCRM(); const [searchTerm, setSearchTerm] = useState(''); const [showRoleModal, setShowRoleModal] = useState(false); const [selectedUser, setSelectedUser] = useState(null); const [newRole, setNewRole] = useState<'admin' | 'user'>('user'); // Filter users const filteredUsers = users.filter(user => (user.name?.toLowerCase().includes(searchTerm.toLowerCase()) || user.email.toLowerCase().includes(searchTerm.toLowerCase())) ); const handleRoleUpdateClick = (user: User) => { setSelectedUser(user); setNewRole(user.role === 'admin' ? 'user' : 'admin'); setShowRoleModal(true); }; const confirmRoleUpdate = async () => { if (selectedUser) { await updateUserRole(selectedUser.id, newRole); setShowRoleModal(false); setSelectedUser(null); } }; if (!isAdmin) { return (

Acesso Restrito

Você precisa de privilégios de administrador para gerenciar usuários e permissões do sistema.

); } return (

Gerenciamento de Usuários

Controle total sobre acesso e permissões da equipe.

setSearchTerm(e.target.value)} className="w-full md:w-80 bg-black/20 border border-white/10 rounded-xl px-4 py-3 text-sm text-slate-300 focus:border-indigo-500 outline-none transition-all placeholder:text-slate-600" />
{filteredUsers.length > 0 ? filteredUsers.map(user => ( )) : ( )}
Usuário Email Status Permissão Último Acesso Ações
{user.avatar ? ( {user.name} ) : (
)}
{user.name || 'Sem Nome'}
ID: {user.id.substring(0, 8)}
{user.email} {user.status || 'Active'} {user.role === 'admin' && } {user.role || 'User'} {user.lastAccess ? new Date(user.lastAccess).toLocaleDateString() : '-'}

Nenhum usuário encontrado

{/* Role Update Modal */} {showRoleModal && selectedUser && (

Alterar Permissão

Você tem certeza que deseja alterar o nível de acesso de {selectedUser.name} para {newRole}?

)}
); }; export default Users;