Fase 1 - UI: dark mode, skeletons, toasts Fase 2 - Filtros: avanzados Mi día, búsqueda global Ctrl+K Fase 3 - Datos: export Excel, notas apartados, auditoría Fase 4 - Dashboard: gráficas vendedor + métricas uso Fase 5 - Responsive: tablets optimizadas Fase 6 - PWA: IndexedDB offline, push notifications Backend: 3 tablas nuevas, 6 services, 6 endpoints nuevos 721 API tests + fronts verdes.
22 lines
606 B
JavaScript
22 lines
606 B
JavaScript
/* eslint-env serviceworker */
|
|
|
|
self.addEventListener('push', (event) => {
|
|
const data = event.data ? event.data.json() : {}
|
|
const titulo = data.titulo || 'FRASA'
|
|
const cuerpo = data.cuerpo || ''
|
|
const url = data.url || '/'
|
|
event.waitUntil(
|
|
self.registration.showNotification(titulo, {
|
|
body: cuerpo,
|
|
data: { url },
|
|
icon: '/quote/icons/icon-192.png',
|
|
}),
|
|
)
|
|
})
|
|
|
|
self.addEventListener('notificationclick', (event) => {
|
|
event.notification.close()
|
|
const url = (event.notification.data && event.notification.data.url) || '/'
|
|
event.waitUntil(clients.openWindow(url))
|
|
})
|