diff --git a/packages/web/src/launch.rs b/packages/web/src/launch.rs new file mode 100644 index 000000000..0561a701d --- /dev/null +++ b/packages/web/src/launch.rs @@ -0,0 +1,22 @@ +//! This module contains the `launch` function, which is the main entry point for dioxus web + +pub use crate::Config; +use dioxus_core::prelude::*; +use std::any::Any; + +/// Launch the web application with the given root component, context and config +/// +/// For a builder API, see `LaunchBuilder` defined in the `dioxus` crate. +pub fn launch( + root: fn() -> Element, + contexts: Vec Box>>, + platform_config: Config, +) { + wasm_bindgen_futures::spawn_local(async move { + let mut vdom = VirtualDom::new(root); + for context in contexts { + vdom.insert_any_root_context(context()); + } + crate::run(vdom, platform_config).await; + }); +} diff --git a/packages/web/src/lib.rs b/packages/web/src/lib.rs index ddfbb90d7..bb459f198 100644 --- a/packages/web/src/lib.rs +++ b/packages/web/src/lib.rs @@ -71,10 +71,9 @@ mod dom; #[cfg(feature = "eval")] mod eval; mod event; +pub mod launch; mod mutations; -mod platform; pub use event::*; -pub use platform::*; #[cfg(feature = "file_engine")] mod file_engine; #[cfg(all(feature = "hot_reload", debug_assertions))] diff --git a/packages/web/src/platform.rs b/packages/web/src/platform.rs deleted file mode 100644 index 274946bb3..000000000 --- a/packages/web/src/platform.rs +++ /dev/null @@ -1,21 +0,0 @@ -pub mod launch { - use std::any::Any; - - use dioxus_core::prelude::*; - - pub type Config = crate::Config; - - pub fn launch( - root: fn() -> Element, - contexts: Vec Box + Send>>, - platform_config: Config, - ) { - wasm_bindgen_futures::spawn_local(async move { - let mut vdom = VirtualDom::new(root); - for context in contexts { - vdom.insert_any_root_context(context()); - } - crate::run(vdom, platform_config).await; - }); - } -}