From 5f7dfe552fe01d600e66c7a89e39ee41d6ee4e52 Mon Sep 17 00:00:00 2001 From: jason5ng32 Date: Sun, 16 Aug 2026 15:29:00 +0800 Subject: [PATCH] Improvements --- frontend/App.vue | 7 ++-- frontend/components/widgets/PWA.vue | 6 +++ frontend/locales/en.json | 4 ++ frontend/locales/fr.json | 4 ++ frontend/locales/ru.json | 4 ++ frontend/locales/zh.json | 4 ++ frontend/utils/pwa.js | 32 ++++++++++++--- tests/pwa.test.js | 62 +++++++++++++++++++++++++---- 8 files changed, 106 insertions(+), 17 deletions(-) diff --git a/frontend/App.vue b/frontend/App.vue index 4b81ea3a..38bc1476 100644 --- a/frontend/App.vue +++ b/frontend/App.vue @@ -20,9 +20,10 @@ import { shouldOfferPwaInstall } from '@/utils/pwa.js'; import { sendVisitBeacon } from '@/utils/pulse-beacon.js'; import { useTheme } from '@/composables/use-theme.js'; -// PWA install prompt — async and eligibility-gated: ineligible visits (first -// visit, prompt cap reached, already installed) never load pwa-install or -// trigger its manifest fetch; eligible ones load it at the prompt's 30s mark. +// PWA install prompt — async and eligibility-gated: ineligible visits (too +// few 12h-deduped uses, prompt cap reached, already installed) never load +// pwa-install or trigger its manifest fetch; eligible ones load it at the +// prompt's 30s mark. const PWA = defineAsyncComponent(() => import('@/components/widgets/PWA.vue')); const offerPwaInstall = ref(false); onMounted(() => { diff --git a/frontend/components/widgets/PWA.vue b/frontend/components/widgets/PWA.vue index 8617b91e..56a222e3 100644 --- a/frontend/components/widgets/PWA.vue +++ b/frontend/components/widgets/PWA.vue @@ -5,10 +5,14 @@