webclient: the push permission is asked once a session, after signing in
The permission was only ever asked from the switch in Settings, and a call
without a user gesture is ignored by Firefox and Safari and answered with a
quiet icon by Chrome — so the app now offers a bar whose button click is that
gesture. It is asked once per browser session (there is no marker that tells a
fresh sign-in from a reload, so the session is the honest bound), and a
refusal ends it for good: only an explicit block counts, and after that the
switch in Settings is the single way back to it.

The policy lives in useNotificationPrompt.js as a layer over usePush, which
is untouched: the granted-but-unsubscribed trap is what makes the eligibility
gate "permission is still default", otherwise the bar would silently
re-subscribe whoever turned notifications off by hand. The banner itself is
presentation only, and is the component proposed to gnexus-ui-kit
(docs/tasks/gn-permission-banner.md there) — the kit takes the gesture, the
view and the contract, never the storage keys or the timing.
1 parent 77606d6 commit 4387a27675a2de6c5ace0a6bf99079f35443e250
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 6 hours ago
Showing 17 changed files
View
docs/i18n.md
View
webclient/dist/assets/index-6irUhvo6.css 100644 → 0
View
webclient/dist/assets/index-CsHD0Wo4.css 0 → 100644
View
webclient/dist/assets/index-Cv64uvH2.js 100644 → 0
Not supported
View
webclient/dist/assets/index-sGLNrZjw.js 0 → 100644
Not supported
View
webclient/dist/index.html
View
webclient/dist/sw.js
View
webclient/src/App.vue
View
webclient/src/components/ui/NotificationPromptBanner.vue 0 → 100644
View
webclient/src/composables/useNotificationPrompt.js 0 → 100644
View
webclient/src/i18n/messages/en.js
View
webclient/src/i18n/messages/ru.js
View
webclient/src/i18n/messages/uk.js
View
webclient/tests/unit/components/appRouting.test.js
View
webclient/tests/unit/components/ui/notificationPromptBanner.test.js 0 → 100644
View
webclient/tests/unit/composables/useNotificationPrompt.test.js 0 → 100644
View
webclient/tests/unit/i18n/index.test.js