From 10a3b228f6e5967fbdb3a1cc3323818c00e44f72 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 5 Jul 2023 15:19:26 -0700 Subject: [PATCH] Add some logging and debug --- examples/mobile_demo/src/index.html | 12 +++++++ examples/mobile_demo/src/lib.rs | 52 ++++++++++++++++++++--------- packages/core/src/arena.rs | 2 +- 3 files changed, 49 insertions(+), 17 deletions(-) create mode 100644 examples/mobile_demo/src/index.html diff --git a/examples/mobile_demo/src/index.html b/examples/mobile_demo/src/index.html new file mode 100644 index 000000000..b0e6290e1 --- /dev/null +++ b/examples/mobile_demo/src/index.html @@ -0,0 +1,12 @@ + + + + Dioxus app + + + + +
+ + + diff --git a/examples/mobile_demo/src/lib.rs b/examples/mobile_demo/src/lib.rs index 3a910661d..9d533e52d 100644 --- a/examples/mobile_demo/src/lib.rs +++ b/examples/mobile_demo/src/lib.rs @@ -1,15 +1,8 @@ use anyhow::Result; +use dioxus::prelude::*; +use dioxus_desktop::Config; #[cfg(target_os = "android")] use wry::android_binding; -use wry::{ - application::{ - event::{Event, StartCause, WindowEvent}, - event_loop::{ControlFlow, EventLoop, EventLoopWindowTarget}, - window::WindowBuilder, - }, - http::Response, - webview::{WebView, WebViewBuilder}, -}; #[cfg(target_os = "android")] fn init_logging() { @@ -54,13 +47,40 @@ pub extern "C" fn start_app() { pub fn main() -> Result<()> { init_logging(); - use dioxus::prelude::*; - - dioxus_desktop::launch(|cx| { - cx.render(rsx! { - "hello world!" - }) - }); + // Right now we're going through dioxus-desktop but we'd like to go through dioxus-mobile + // That will seed the index.html with some fixes that prevent the page from scrolling/zooming etc + dioxus_desktop::launch_cfg( + app, + // Note that we have to disable the viewport goofiness of the browser. + // Dioxus_mobile should do this for us + Config::default().with_custom_index(include_str!("index.html").to_string()), + ); Ok(()) } + +fn app(cx: Scope) -> Element { + let items = cx.use_hook(|| vec![1, 2, 3]); + + log::debug!("Hello from the app"); + + render! { + div { + h1 { "Hello, Mobile"} + div { margin_left: "auto", margin_right: "auto", width: "200px", padding: "10px", border: "1px solid black", + button { + onclick: move|_| { + println!("Clicked!"); + items.push(items.len()); + cx.needs_update_any(ScopeId(0)); + println!("Requested update"); + }, + "Add item" + } + for item in items.iter() { + div { "- {item}" } + } + } + } + } +} diff --git a/packages/core/src/arena.rs b/packages/core/src/arena.rs index caa863adf..ec9cf1684 100644 --- a/packages/core/src/arena.rs +++ b/packages/core/src/arena.rs @@ -22,7 +22,7 @@ pub(crate) struct ElementRef { pub template: Option>>, } -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Debug)] pub enum ElementPath { Deep(&'static [u8]), Root(usize),