app

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

commit 1027e3b1cbd7b0fa96aa64538c6f29827f64be22
parent fa2b520c8d21cb04b2b857da7192529608d90870
Author: triesap <triesap@radroots.dev>
Date:   Mon, 19 Jan 2026 15:38:52 +0000

app: wire idb init into root component

- create backends and error signals for app init state
- provide init signals as leptos contexts
- run app_init_backends on mount via spawn_local
- store init results without changing the main view

Diffstat:
Mapp/src/app.rs | 15+++++++++++++++
1 file changed, 15 insertions(+), 0 deletions(-)

diff --git a/app/src/app.rs b/app/src/app.rs @@ -1,7 +1,22 @@ use leptos::prelude::*; +use leptos::task::spawn_local; + +use crate::{app_init_backends, AppBackends, AppInitError}; #[component] pub fn App() -> impl IntoView { + let backends = RwSignal::new_local(None::<AppBackends>); + let init_error = RwSignal::new_local(None::<AppInitError>); + provide_context(backends); + provide_context(init_error); + Effect::new(move || { + spawn_local(async move { + match app_init_backends().await { + Ok(value) => backends.set(Some(value)), + Err(err) => init_error.set(Some(err)), + } + }) + }); view! { <main>"app"</main> }