app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

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:
Mapp/src/app.rs | 12++++++++----
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));