import React, { useState, useEffect } from 'react'; import { db } from '../../firebase/config'; import { ref, onValue, set, update } from 'firebase/database'; import { Users, Shield, UserPlus, Trash2, CheckCircle, Activity, ShieldCheck, UserCog } from 'lucide-react'; export default function UserManager() { const [employees, setEmployees] = useState([]); const [newEmployee, setNewEmployee] = useState({ email: '', role: 'mesero', name: '' }); useEffect(() => { onValue(ref(db, 'users'), (snapshot) => { const data = snapshot.val(); if (data) { setEmployees(Object.keys(data).map(uid => ({ uid, ...data[uid] }))); } }); }, []); const handleUpdateRole = async (uid, newRole) => { await update(ref(db, `users/${uid}`), { role: newRole }); }; const roleColors = { admin: 'var(--primary)', mesero: 'var(--success)', cocina: 'var(--warning)', cajero: '#50ADE6' }; return (

Equipo y Roles

Control de acceso y permisos para empleados

{employees.map(emp => (

{emp.name || 'Sin Nombre'}

{emp.email}

Activo
))}

Registrar Nuevo Empleado

El empleado debe registrarse primero en la app para aparecer aquí.

Permisos por Rol

{[ { role: 'Admin', rights: 'Control total de inventario, finanzas y menú.' }, { role: 'Mesero', rights: 'Toma de pedidos, cierre de cuentas y mapa de mesas.' }, { role: 'Cocina', rights: 'Visualización de tickets y cambio de estado de preparación.' }, { role: 'Cajero', rights: 'Gestión de arqueo de caja y cobros de POS.' } ].map(r => (

{r.role}

{r.rights}

))}
); } const inputStyle = { width: '100%', padding: '0.8rem', borderRadius: '8px', background: 'rgba(255,255,255,0.05)', border: '1px solid var(--border-subtle)', color: '#fff', outline: 'none' }; const labelStyle = { display: 'block', fontSize: '0.8rem', color: 'var(--text-muted)', marginBottom: '0.5rem' };