From ced637a7a9666dae6c091fc77678cab7657faad0 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Fri, 17 Oct 2025 18:04:46 -0600 Subject: [PATCH] Reemplazar selector de status por chip discreto indicativo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Quitar botones de selección de estado de presencia - Agregar chip compacto y discreto al lado del email - El chip solo muestra el estado actual (no permite cambiarlo) - El estado se manejará dinámicamente desde el backend - Por defecto el estado es 'disponible' (online) - Actualizar estilos para modo claro y oscuro --- nuxt4/app/components/UserHeader.vue | 109 +++++++++++----------------- 1 file changed, 41 insertions(+), 68 deletions(-) diff --git a/nuxt4/app/components/UserHeader.vue b/nuxt4/app/components/UserHeader.vue index 7ceb507..41a3acf 100644 --- a/nuxt4/app/components/UserHeader.vue +++ b/nuxt4/app/components/UserHeader.vue @@ -21,21 +21,16 @@ -

{{ user?.email }}

+
+

{{ user?.email }}

- -
- + + + + {{ currentPresenceLabel }} +
+
const { user } = useAuthentik() const { isNight, toggleTheme } = useTheme() -const { status: presenceStatus, setStatus: setPresenceStatus, initActivityListeners } = usePresence() +const { status: presenceStatus, initActivityListeners } = usePresence() // Emits defineEmits(['edit-profile']) @@ -77,13 +72,17 @@ onMounted(() => { initActivityListeners() }) -// Estados disponibles para el selector -const presenceOptions = [ - { value: 'online', label: 'Disponible', icon: 'i-heroicons-check-circle' }, - { value: 'away', label: 'Ausente', icon: 'i-heroicons-clock' }, - { value: 'busy', label: 'Ocupado', icon: 'i-heroicons-minus-circle' }, - { value: 'offline', label: 'Desconectado', icon: 'i-heroicons-x-circle' } -] +// Mapeo de estados (solo para mostrar, no para cambiar) +const presenceMap = { + online: { label: 'Disponible', icon: 'i-heroicons-check-circle' }, + away: { label: 'Ausente', icon: 'i-heroicons-clock' }, + busy: { label: 'Ocupado', icon: 'i-heroicons-minus-circle' }, + offline: { label: 'Desconectado', icon: 'i-heroicons-x-circle' } +} + +// Estado actual (computed) +const currentPresenceLabel = computed(() => presenceMap[presenceStatus.value]?.label || 'Disponible') +const currentPresenceIcon = computed(() => presenceMap[presenceStatus.value]?.icon || 'i-heroicons-check-circle')