From 0bd9379cb4d0508c274f36011851e19301122d4f Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 12 Sep 2025 22:17:50 +0000 Subject: [PATCH] Add notification permission button to UI Co-authored-by: bill.frasure --- .../crestedbutte/laminar/Components.scala | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/frontend/src/main/scala/crestedbutte/laminar/Components.scala b/frontend/src/main/scala/crestedbutte/laminar/Components.scala index 87ebe1bb..696465c9 100644 --- a/frontend/src/main/scala/crestedbutte/laminar/Components.scala +++ b/frontend/src/main/scala/crestedbutte/laminar/Components.scala @@ -105,6 +105,24 @@ object Components { ), ), ), + // Notification permission button at the bottom + div( + cls := "notification-permission-container", + styleAttr := "position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 1000; width: auto;", + child <-- Signal.fromValue(()).map { _ => + if (dom.Notification.permission == "granted") { + div() // Don't show button if permission already granted + } else { + button( + idAttr := ElementNames.Notifications.requestPermission, + cls := "button", + styleAttr := "padding: 0.75rem 1.5rem; box-shadow: 0 2px 8px rgba(0,0,0,0.3);", + "Enable Notifications", + onClick --> Experimental.Notifications.clickObserver, + ) + } + }, + ), ) }