Commit Graph

22 Commits

Author SHA1 Message Date
192d8a7e79 Revert "fix: implementar manejo correcto de modo offline"
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 25s
This reverts commit eedff715d4.
2025-10-17 16:08:11 -06:00
eedff715d4 fix: implementar manejo correcto de modo offline
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 24s
Problema crítico anterior:
Cuando se perdía conexión, el sistema marcaba como "no autenticado"
y DESREGISTRABA el Service Worker, destruyendo todo el contenido
cacheado y volviendo la PWA inútil offline.

Solución implementada:

1. useAuth.ts:
   - Agregar estado isOffline con listeners de navigator.onLine
   - Detectar offline ANTES de marcar como no autenticado
   - En checkAuth: si offline, mantener último estado conocido
   - En markUnauthenticated: NO ejecutar si estamos offline
   - Nuevo authStatus: 'offline' cuando sin conexión
   - NO desregistrar SW cuando estamos offline

2. AuthIndicator.client.vue:
   - Importar isOffline del composable
   - Agregar icono WifiOff para estado offline
   - Agregar textos: "Offline" / "Sin conexión. Puedes usar contenido guardado"
   - Estilos naranja para estado offline
   - En watchers: NO llamar markUnauthenticated si offline
   - handleClick: ignorar clicks en modo offline

Ahora offline funciona correctamente:
 Mantiene último estado de autenticación conocido
 NO desregistra Service Worker
 Contenido cacheado permanece accesible
 Indicador visual claro (naranja) de modo offline
 La PWA es totalmente funcional sin conexión
2025-10-17 04:21:31 -06:00
40945dc634 feat: agregar botón de Inicio al dropdown de configuración
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 25s
Agregar botón 'Inicio' con icono Home al dropdown de los 3 puntos.
El botón navega a la página principal y cierra el menú automáticamente.

Cambios:
- Importar icono Home de lucide-vue-next
- Agregar botón de Inicio como primera opción del menú
- Implementar función goToHome() para navegación
- Estilos con hover y active states
- Icono en color accent-primary para consistencia visual
2025-10-17 04:12:47 -06:00
1a5dbbbcb2 style: igualar fondo del dropdown de configuración con autenticación
All checks were successful
build-and-deploy / build (push) Successful in 22s
build-and-deploy / deploy (push) Successful in 3s
- Usar var(--bg-secondary) en lugar de rgba fijo
- Aumentar blur de 20px a 50px para consistencia
- Usar var(--border-glass) para bordes
- Ajustar border-radius de 16px a 12px
- Usar mismo box-shadow que AuthIndicator
- Reducir padding de 12px a 8px
2025-10-14 01:39:56 -06:00
aa34a98737 fix: aumentar z-index del header y dropdown
All checks were successful
build-and-deploy / build (push) Successful in 23s
build-and-deploy / deploy (push) Successful in 3s
- Agregar z-index: 100 al app-header
- Aumentar z-index del dropdown a 10001 (mayor que AuthIndicator)
- Asegurar que el dropdown se dibuje por encima de todos los elementos
2025-10-14 01:36:34 -06:00
c082d2d27a fix: corregir overflow del dropdown en el header
All checks were successful
build-and-deploy / build (push) Successful in 22s
build-and-deploy / deploy (push) Successful in 3s
- Cambiar overflow: hidden a overflow: visible en app-header
- Aumentar z-index del dropdown de 1000 a 9999
- Permitir que el dropdown se dibuje por encima de todos los elementos
2025-10-14 01:32:37 -06:00
67d168ec6c feat: agregar menú dropdown de configuración compacto
All checks were successful
build-and-deploy / build (push) Successful in 22s
build-and-deploy / deploy (push) Successful in 3s
- Crear componente SettingsMenu.client.vue con tres puntos verticales
- Agrupar AuthIndicator y ThemeToggle en dropdown menu
- Reducir espacio en barra principal para diseño más compacto
- Agregar animaciones y transiciones suaves al dropdown
- Cerrar menú automáticamente al hacer clic fuera o presionar Escape
2025-10-14 01:22:58 -06:00
de3ffbe05f feat: agregar búsqueda de canciones y configurar hook de Gitea Actions
All checks were successful
build-and-deploy / build (push) Successful in 25s
build-and-deploy / deploy (push) Successful in 4s
- Agregar componente SearchFilter.client.vue modular y expandible
- Integrar búsqueda en MainContainer con contador de resultados
- Implementar filtrado de canciones por nombre en pages/index.vue
- Configurar hook PostToolUse para monitorear Gitea Actions
- Copiar y adaptar script monitor-gitea-action.sh para repodructor
2025-10-14 01:14:19 -06:00
182bfa74c9 Add user info header to authentication dropdown
All checks were successful
build-and-deploy / build (push) Successful in 23s
build-and-deploy / deploy (push) Successful in 2s
- Created /api/auth/userinfo endpoint to fetch user data from Authentik headers
- Added userInfo state and fetchUserInfo() function to useAuth composable
- Implemented compact user info header in dropdown with avatar, name, and email
- Avatar shows user initials with gradient background
- Styled with glassmorphism design matching app aesthetic
2025-10-12 03:26:38 -06:00
d31a715974 feat: agregar dropdown de autenticación con opción de logout
All checks were successful
build-and-deploy / build (push) Successful in 23s
build-and-deploy / deploy (push) Successful in 3s
- Dropdown aparece al hacer click cuando estás conectado
- Opciones: verificar estado y cerrar sesión
- Logout usa endpoint de Authentik (/outpost.goauthentik.io/sign_out)
- Desregistra Service Worker antes de logout
- Animación smooth del dropdown
- Flecha indicadora que rota al abrir/cerrar
- Diseño glassmorphism consistente con la app
2025-10-12 03:16:01 -06:00
cda4722a27 fix: desregistrar Service Worker al perder autenticación
All checks were successful
build-and-deploy / build (push) Successful in 23s
build-and-deploy / deploy (push) Successful in 3s
- Desregistrar SW automáticamente cuando se detecta pérdida de auth
- Desregistrar SW antes de triggerAuth para evitar conflictos con Authentik
- Deshabilitar polling y listeners de visibility (causan errores de CORS)
- Confiar en detección reactiva de errores del musicStore
- Usar window.location.href en lugar de reload() para forzar navegación
2025-10-12 03:12:03 -06:00
fda5b2497a fix: mejorar detección de pérdida de autenticación con Authentik
All checks were successful
build-and-deploy / build (push) Successful in 24s
build-and-deploy / deploy (push) Successful in 3s
- Detectar errores "Failed to fetch" y "no response" como pérdida de auth
- Mejor logging para debugging de cambios de estado
- Manejar correctamente redirects 302 de Authentik en fetch
2025-10-12 03:06:08 -06:00
bca654dee4 vamos2
All checks were successful
build-and-deploy / build (push) Successful in 25s
build-and-deploy / deploy (push) Successful in 4s
2025-10-12 02:08:41 -06:00
98fb972a4e vamos
All checks were successful
build-and-deploy / build (push) Successful in 23s
build-and-deploy / deploy (push) Successful in 3s
2025-10-12 00:59:50 -06:00
1f087eb6f3 indicador de conexion y logging
All checks were successful
build-and-deploy / build (push) Successful in 23s
build-and-deploy / deploy (push) Successful in 3s
2025-10-11 19:36:19 -06:00
81330de97e feat(pwa-offline): Pinia store + IndexedDB; contexto para cache/eliminación; toasts; compatibilidad PWA offline
All checks were successful
build-and-deploy / build (push) Successful in 40s
build-and-deploy / deploy (push) Successful in 4s
- Agrega @pinia/nuxt, idb y store central (stores/music.ts)
- Cacheo manual desde menú contextual y borrado (TrackContextMenu)
- Ícono verde para canciones cacheadas, sin auto-cache al reproducir
- Toasts de feedback (stores/toast.ts, ToastContainer)
- Fallback offline de listado a IndexedDB; fix MUSIC_DIR absoluto en preview/prod
- Ajustes PWA: navigateFallback '/', devOptions, workbox condicional
- Estilos y animación del context menu (tema light/dark, blur fuerte)
- Correcciones de sintaxis y posicionamiento exacto al cursor
2025-08-10 02:51:38 -06:00
ba70e0d280 mejoras de ui 3 2025-08-10 01:40:56 -06:00
bf7413b45f Fix 403 error when loading music files
- Fix path traversal security check by using absolute paths
- Remove problematic fetch override that forced JSON headers on all API requests
- Add error tracking and visual indicators for failed tracks
- Correct music directory resolution for both relative and absolute paths

The main issue was the security validation comparing relative paths incorrectly,
causing legitimate music file requests to be rejected with 403 errors.
2025-08-10 01:28:16 -06:00
d3d0811a9f mejoras de UI 2 2025-08-10 00:58:31 -06:00
493d236dc4 UI mejorada 2025-08-10 00:45:59 -06:00
5e4256cdc5 Reduce animation intensity and remove distracting scale effects 2025-08-04 13:29:43 -06:00
7cb35b8c27 Implement Lucide Vue icon system and UI improvements
- Replace emoji icons with professional SVG icons from Lucide Vue
- Add collapsible MusicControls with compact top-right collapse button
- Improve icon system with dynamic sizing and proper prop handling
- Disable SSR to prevent hydration issues with audio APIs
- Update IconButton to support both emoji strings and SVG components
- Optimize bottom positioning for expanded vs collapsed states
- Document new icon system in DESIGN_SYSTEM.md
2025-08-03 20:01:31 -06:00