commit 57af1ca39d58b2a5b9d6c8ed949b6dbf9c0e27dc
parent b2aff3564eeaeaf4a9dab7b41b58911ff2a590c6
Author: triesap <triesap@radroots.dev>
Date: Mon, 19 Jan 2026 17:05:05 +0000
app: thread app config into init
- store AppConfig on AppBackends
- pass config through app_init_backends
- update app init call to use default config
- adjust init test for new signature
Diffstat:
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/app/src/app.rs b/app/src/app.rs
@@ -5,6 +5,7 @@ use crate::{
app_init_backends,
app_init_state_default,
app_init_mark_completed,
+ app_config_default,
AppBackends,
AppInitError,
AppInitStage,
@@ -21,7 +22,7 @@ pub fn App() -> impl IntoView {
Effect::new(move || {
spawn_local(async move {
init_state.update(|state| state.stage = AppInitStage::Storage);
- match app_init_backends().await {
+ match app_init_backends(app_config_default()).await {
Ok(value) => {
backends.set(Some(value));
app_init_mark_completed();
diff --git a/app/src/init.rs b/app/src/init.rs
@@ -14,6 +14,8 @@ use radroots_app_core::idb::{
};
use radroots_app_core::keystore::{RadrootsClientKeystoreError, RadrootsClientWebKeystoreNostr};
+use crate::AppConfig;
+
#[cfg(target_arch = "wasm32")]
use leptos::prelude::window;
@@ -103,6 +105,7 @@ impl fmt::Display for AppInitError {
impl std::error::Error for AppInitError {}
pub struct AppBackends {
+ pub config: AppConfig,
pub datastore: RadrootsClientWebDatastore,
pub nostr_keystore: RadrootsClientWebKeystoreNostr,
}
@@ -147,7 +150,7 @@ pub fn app_init_reset() {
}
}
-pub async fn app_init_backends() -> AppInitResult<AppBackends> {
+pub async fn app_init_backends(config: AppConfig) -> AppInitResult<AppBackends> {
idb_store_bootstrap(RADROOTS_IDB_DATABASE, None)
.await
.map_err(AppInitError::Idb)?;
@@ -158,6 +161,7 @@ pub async fn app_init_backends() -> AppInitResult<AppBackends> {
.map_err(AppInitError::Datastore)?;
let nostr_keystore = RadrootsClientWebKeystoreNostr::new(None);
Ok(AppBackends {
+ config,
datastore,
nostr_keystore,
})
@@ -172,6 +176,7 @@ mod tests {
AppInitErrorMessage,
AppInitStage,
};
+ use crate::app_config_default;
use radroots_app_core::datastore::RadrootsClientDatastoreError;
use radroots_app_core::idb::RadrootsClientIdbStoreError;
use radroots_app_core::keystore::RadrootsClientKeystoreError;
@@ -200,7 +205,7 @@ mod tests {
#[test]
fn app_init_backends_maps_idb_errors() {
- let err = match futures::executor::block_on(app_init_backends()) {
+ let err = match futures::executor::block_on(app_init_backends(app_config_default())) {
Ok(_) => panic!("idb bootstrap should error on non-wasm"),
Err(err) => err,
};