# Diseño: Acceso al Panel de Administración ## Resumen Añadir un botón de acceso al panel de administración en la página de perfil (pestaña "Usuario") que solo sea visible para usuarios con permisos de administrador. ## Objetivo Proporcionar una forma intuitiva y consistente para que los usuarios administradores accedan al panel de administración desde la interfaz principal. ## Requisitos 1. El botón solo debe aparecer cuando el usuario tiene `is_admin: true` 2. El botón debe seguir el mismo estilo que los otros elementos del menú del perfil 3. Al hacer clic, debe navegar a la vista de administración existente 4. No debe afectar la experiencia de usuarios no administradores ## Diseño Detallado ### Ubicación - **Página:** ProfileView (pestaña "Usuario" en BottomNav) - **Sección:** Dentro de `.profile-menu`, después de "Configuración de Texto" - **Posición:** Antes del botón "Cerrar Sesión" ### Componente - **Tipo:** Botón con ícono, texto y chevron (igual que otros items del menú) - **Ícono:** Engranaje (⚙️) con fondo de color primario - **Texto:** "Panel de Administración" - **Estilo:** Idéntico a `.profile-menu-item` existente ### Comportamiento 1. **Renderizado condicional:** ```jsx {currentUser?.is_admin && ( )} ``` 2. **Navegación:** - Recibir función `onAdminClick` como prop - En `App.jsx`, implementar `handleAdminClick` que cambie `screen` a `'admin'` ### Cambios en Archivos #### 1. `frontend/src/views/ProfileView.jsx` - Añadir prop `onAdminClick` - Renderizar botón condicionalmente basado en `currentUser?.is_admin` #### 2. `frontend/src/App.jsx` - Añadir función `handleAdminClick` que establezca `screen` en `'admin'` - Pasar `onAdminClick={handleAdminClick}` a `ProfileView` ### Estilos No se requieren cambios en CSS - se reutilizan las clases existentes: - `.profile-menu-item` - `.menu-item-icon--primary` - `.menu-item-label` - `.menu-item-chevron` ## Criterios de Aceptación 1. ✅ Botón visible solo para usuarios admin 2. ✅ Botón no visible para usuarios normales 3. ✅ Estilo consistente con otros elementos del menú 4. ✅ Al hacer clic, navega a la vista de administración 5. ✅ No se muestra en dispositivos móviles si el usuario no es admin ## Impacto - **Archivos modificados:** 2 (`ProfileView.jsx`, `App.jsx`) - **Complejidad:** Baja - **Riesgo:** Mínimo - solo añade un elemento condicional