diff --git a/packages/cli/Cargo.toml b/packages/cli/Cargo.toml index e0504047e..0c629513e 100644 --- a/packages/cli/Cargo.toml +++ b/packages/cli/Cargo.toml @@ -12,7 +12,7 @@ description = "CLI tool for developing, testing, and publishing Dioxus apps" thiserror = "1.0.23" log = "0.4.13" fern = { version = "0.6.0", features = ["colored"] } -wasm-bindgen-cli-support = "0.2.69" +wasm-bindgen-cli-support = "0.2.70" anyhow = "1.0.38" argh = "0.1.4" serde = "1.0.120" diff --git a/packages/cli/src/logging.rs b/packages/cli/src/logging.rs index d8ddf514e..4df6afa8d 100644 --- a/packages/cli/src/logging.rs +++ b/packages/cli/src/logging.rs @@ -36,7 +36,7 @@ pub fn set_up_logging() { // field which defaults to the module path but can be overwritten with the `target` // parameter: // `info!(target="special_target", "This log message is about special_target");` - .level_for("diopack", log::LevelFilter::Info) + .level_for("dioxus-cli", log::LevelFilter::Info) // .level_for("pretty_colored", log::LevelFilter::Trace) // output to stdout .chain(std::io::stdout()) diff --git a/packages/web/Cargo.toml b/packages/web/Cargo.toml index 0b6fdfd0e..aedf8c5f0 100644 --- a/packages/web/Cargo.toml +++ b/packages/web/Cargo.toml @@ -9,7 +9,8 @@ edition = "2018" [dependencies] dioxus-core = { path = "../core" } js-sys = "0.3" -wasm-bindgen = "0.2.70" +wasm-bindgen = "0.2.69" +# wasm-bindgen = "0.2.70" lazy_static = "1.4.0" wasm-bindgen-futures = "0.4.20" futures = "0.3.12" diff --git a/packages/web/examples/basic.rs b/packages/web/examples/basic.rs new file mode 100644 index 000000000..cf8b2dc48 --- /dev/null +++ b/packages/web/examples/basic.rs @@ -0,0 +1,50 @@ +//! basic example that renders a simple domtree to the page :) +//! +//! +//! +use dioxus_core::prelude::bumpalo::Bump; +use dioxus_core::prelude::*; +use dioxus_web::*; + +fn main() { + wasm_logger::init(wasm_logger::Config::new(log::Level::Debug)); + log::debug!("Hello world, from the app"); + WebsysRenderer::simple_render(html! { + + // Body +
+
+
+ // Title +
+ // {format!("Fibonacci Calculator: n = {}",n)} + "Fibonacci Calculator: n = {}" +
+ + // Subtext / description +
+ // {format!("Calculated in {} nanoseconds",duration)} + // {format!("Calculated in {} nanoseconds",duration)} + "Calculated in {} nanoseconds" +
+ +
+ // Main number +
+ // {format!("{}",fib_n)} +
+
+ + // Try another + +
+
+
+ + }); +} diff --git a/packages/web/src/lib.rs b/packages/web/src/lib.rs index 6e478326a..b7a559b2e 100644 --- a/packages/web/src/lib.rs +++ b/packages/web/src/lib.rs @@ -102,15 +102,27 @@ impl WebsysRenderer { Ok(()) } - fn simple_render(tree: impl for<'a> Fn(&'a Bump) -> VNode<'a>) { + pub fn simple_render(tree: impl for<'a> Fn(&'a Bump) -> VNode<'a>) { let bump = Bump::new(); let old = html! {
}(&bump); + + let created = create_dom_node(&old); + let root_node = created.node; + let new = tree(&bump); let mut machine = DiffMachine::new(); let patches = machine.diff(&old, &new); + log::info!("There are {:?} patches", patches.len()); + + let root2 = root_node.clone(); + patch(root_node, &patches).expect("Failed to simple render"); + let document = web_sys::window().unwrap().document().unwrap(); + + document.body().unwrap().append_child(&root2); + log::info!("Succesfully patched the dom"); } } @@ -454,6 +466,7 @@ pub fn create_element_node(node: &dioxus_core::nodes::VElement) -> CreatedNode { let current_node = element.as_ref() as &web_sys::Node;