commit da070b6950405e39bc9c6688955fd3825b20d9f7
parent e6f1b4a2eae401cd319f50e4bd35cb060d834a16
Author: triesap <triesap@radroots.dev>
Date: Wed, 21 Jan 2026 15:03:13 +0000
app: wire typed notifications permission
- parse stored permission before updating UI
- use typed setter after permission request
- normalize permission label from enum value
- keep health check state in sync
Diffstat:
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/app/src/app.rs b/app/src/app.rs
@@ -22,7 +22,8 @@ use crate::{
app_log_error_store,
app_config_default,
app_datastore_read_state,
- app_state_set_notifications_permission,
+ app_state_notifications_permission_value,
+ app_state_set_notifications_permission_value,
app_health_check_all_logged,
RadrootsAppBackends,
RadrootsAppConfig,
@@ -102,7 +103,10 @@ fn spawn_health_checks(
Some(data.active_key.clone())
}
});
- let notifications_value = app_data.and_then(|data| data.notifications_permission);
+ let notifications_value = app_data
+ .as_ref()
+ .and_then(app_state_notifications_permission_value)
+ .map(|permission| permission.as_str().to_string());
health_report.set(report);
active_key.set(active_key_value);
notifications_status.set(notifications_value);
@@ -278,10 +282,10 @@ fn HomePage() -> impl IntoView {
match notifications.request_permission().await {
Ok(permission) => {
let value = permission.as_str().to_string();
- let _ = app_state_set_notifications_permission(
+ let _ = app_state_set_notifications_permission_value(
&datastore,
&config.datastore.key_maps,
- &value,
+ permission,
)
.await;
notifications_status.set(Some(value));