Skip to content

Commit

Permalink
docs: fix web doc example and use &mut for builders everywhere
Browse files Browse the repository at this point in the history
  • Loading branch information
jkelleyrtp committed Jan 25, 2022
1 parent 732ec01 commit a239d2b
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 6 deletions.
2 changes: 1 addition & 1 deletion packages/desktop/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ pub fn launch_with_props<P: 'static + Send>(
props: P,
builder: impl FnOnce(&mut DesktopConfig) -> &mut DesktopConfig,
) {
let mut cfg = DesktopConfig::new();
let mut cfg = DesktopConfig::default();
builder(&mut cfg);

let event_loop = EventLoop::with_user_event();
Expand Down
37 changes: 32 additions & 5 deletions packages/web/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,29 @@ pub fn launch(root_component: Component) {
launch_with_props(root_component, (), |c| c);
}

/// Launch your app and run the event loop, with configuration.
///
/// This function will start your web app on the main web thread.
///
/// You can configure the WebView window with a configuration closure
///
/// ```rust
/// use dioxus::prelude::*;
///
/// fn main() {
/// dioxus_web::launch_with_props(App, |config| config.pre_render(true));
/// }
///
/// fn app(cx: Scope) -> Element {
/// cx.render(rsx!{
/// h1 {"hello world!"}
/// })
/// }
/// ```
pub fn launch_cfg(root: Component, config_builder: impl FnOnce(&mut WebConfig) -> &mut WebConfig) {
launch_with_props(root, (), config_builder)
}

/// Launches the VirtualDOM from the specified component function and props.
///
/// This method will block the thread with `spawn_local`
Expand All @@ -100,7 +123,11 @@ pub fn launch(root_component: Component) {
///
/// ```rust, ignore
/// fn main() {
/// dioxus_web::launch_with_props(App, RootProps { name: String::from("joe") });
/// dioxus_web::launch_with_props(
/// App,
/// RootProps { name: String::from("joe") },
/// |config| config
/// );
/// }
///
/// #[derive(ParitalEq, Props)]
Expand All @@ -112,19 +139,19 @@ pub fn launch(root_component: Component) {
/// rsx!(cx, div {"hello {cx.props.name}"})
/// }
/// ```
pub fn launch_with_props<T, F>(
pub fn launch_with_props<T>(
root_component: Component<T>,
root_properties: T,
configuration_builder: F,
configuration_builder: impl FnOnce(&mut WebConfig) -> &mut WebConfig,
) where
T: Send + 'static,
F: FnOnce(WebConfig) -> WebConfig,
{
if cfg!(feature = "panic_hook") {
console_error_panic_hook::set_once();
}

let config = configuration_builder(WebConfig::default());
let mut config = WebConfig::default();
configuration_builder(&mut config);
wasm_bindgen_futures::spawn_local(run_with_props(root_component, root_properties, config));
}

Expand Down

0 comments on commit a239d2b

Please sign in to comment.