Files
RepoDructor/layouts/default.vue
josedario87 81330de97e
All checks were successful
build-and-deploy / build (push) Successful in 40s
build-and-deploy / deploy (push) Successful in 4s
feat(pwa-offline): Pinia store + IndexedDB; contexto para cache/eliminación; toasts; compatibilidad PWA offline
- 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

30 lines
1.1 KiB
Vue

<template>
<div>
<slot />
<ToastContainer />
</div>
</template>
<script setup>
import ToastContainer from '~/components/ToastContainer.client.vue'
useHead({
title: 'RepoDructor - Music Player',
meta: [
{ name: 'description', content: 'A beautiful glassmorphism music player for your local network' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ name: 'theme-color', content: '#8b5cf6' },
{ name: 'mobile-web-app-capable', content: 'yes' },
{ name: 'apple-mobile-web-app-capable', content: 'yes' },
{ name: 'apple-mobile-web-app-status-bar-style', content: 'default' },
{ name: 'apple-mobile-web-app-title', content: 'RepoDructor' }
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
{ rel: 'icon', type: 'image/png', sizes: '192x192', href: '/logo-192.png' },
{ rel: 'apple-touch-icon', sizes: '192x192', href: '/logo-192.png' },
{ rel: 'apple-touch-icon', sizes: '512x512', href: '/logo-512.png' },
{ rel: 'manifest', href: '/manifest.webmanifest' }
]
})
</script>