diff --git a/middleware/auth.ts b/middleware/auth.ts index d5e38765..7d5c36c4 100644 --- a/middleware/auth.ts +++ b/middleware/auth.ts @@ -14,12 +14,27 @@ export default defineNuxtRouteMiddleware((to) => { }) function handleAuth(to: RouteLocationNormalized) { + if (to.path === '/') { + // Installed PWA shortcut to notifications + if (to.query['notifications-pwa-shortcut'] !== undefined) { + if (currentUser.value) + return navigateTo('/notifications') + else + return navigateTo(`/${currentServer.value}/public/local`) + } + + // Installed PWA shortcut to local + if (to.query['local-pwa-shortcut'] !== undefined) + return navigateTo(`/${currentServer.value}/public/local`) + } + if (!currentUser.value) { if (to.path === '/home' && to.query['share-target'] !== undefined) return navigateTo('/share-target') else return navigateTo(`/${currentServer.value}/public/local`) } + if (to.path === '/') return navigateTo('/home') } diff --git a/modules/pwa/i18n.ts b/modules/pwa/i18n.ts index efcde6ae..e1cfe25b 100644 --- a/modules/pwa/i18n.ts +++ b/modules/pwa/i18n.ts @@ -29,14 +29,14 @@ export async function createI18n(): Promise { ], }, { name: nav.local, - url: '/', + url: '/?local-pwa-shortcut=true', icons: [ { src: 'shortcuts/local-96x96.png', sizes: '96x96', type: 'image/png' }, { src: 'shortcuts/local.png', sizes: '192x192', type: 'image/png' }, ], }, { name: nav.notifications, - url: '/notifications', + url: '/?notifications-pwa-shortcut=true', icons: [ { src: 'shortcuts/notifications-96x96.png', sizes: '96x96', type: 'image/png' }, { src: 'shortcuts/notifications.png', sizes: '192x192', type: 'image/png' },