From 3063d83406ccb842ba35fe908c0989b6b7ac420e Mon Sep 17 00:00:00 2001 From: Evan Almloff Date: Fri, 13 Oct 2023 09:21:57 -0500 Subject: [PATCH] start migrating desktop to sledgehammer --- packages/desktop/Cargo.toml | 2 +- packages/desktop/src/desktop_context.rs | 1 - packages/desktop/src/protocol.rs | 3 ++- packages/desktop/src/webview.rs | 10 ++++++++-- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/desktop/Cargo.toml b/packages/desktop/Cargo.toml index a884928ba..3d147f253 100644 --- a/packages/desktop/Cargo.toml +++ b/packages/desktop/Cargo.toml @@ -12,7 +12,7 @@ keywords = ["dom", "ui", "gui", "react"] [dependencies] dioxus-core = { workspace = true, features = ["serialize"] } dioxus-html = { workspace = true, features = ["serialize", "native-bind"] } -dioxus-interpreter-js = { workspace = true } +dioxus-interpreter-js = { workspace = true, features = ["sledgehammer"]} dioxus-hot-reload = { workspace = true, optional = true } serde = "1.0.136" diff --git a/packages/desktop/src/desktop_context.rs b/packages/desktop/src/desktop_context.rs index 0e8b3e731..b8dff7125 100644 --- a/packages/desktop/src/desktop_context.rs +++ b/packages/desktop/src/desktop_context.rs @@ -14,7 +14,6 @@ use dioxus_core::ScopeState; use dioxus_core::VirtualDom; #[cfg(all(feature = "hot-reload", debug_assertions))] use dioxus_hot_reload::HotReloadMsg; -use dioxus_interpreter_js::Channel; use slab::Slab; use wry::application::accelerator::Accelerator; use wry::application::event::Event; diff --git a/packages/desktop/src/protocol.rs b/packages/desktop/src/protocol.rs index 53652f82f..4efe085bd 100644 --- a/packages/desktop/src/protocol.rs +++ b/packages/desktop/src/protocol.rs @@ -53,10 +53,11 @@ fn module_loader(root_name: &str) -> String { pub(super) fn desktop_handler( request: &Request>, + responder: wry::http::response::Responder, custom_head: Option, custom_index: Option, root_name: &str, -) -> Result>> { +) { // If the request is for the root, we'll serve the index.html file. if request.uri().path() == "/" { // If a custom index is provided, just defer to that, expecting the user to know what they're doing. diff --git a/packages/desktop/src/webview.rs b/packages/desktop/src/webview.rs index 469aa8068..673f5d96f 100644 --- a/packages/desktop/src/webview.rs +++ b/packages/desktop/src/webview.rs @@ -44,8 +44,14 @@ pub fn build( _ = proxy.send_event(UserWindowEvent(EventData::Ipc(message), window.id())); } }) - .with_custom_protocol(String::from("dioxus"), move |r| { - protocol::desktop_handler(r, custom_head.clone(), index_file.clone(), &root_name) + .with_asynchronous_custom_protocol("dioxus".into(), move |r, responder| { + protocol::desktop_handler( + r, + responder, + custom_head.clone(), + index_file.clone(), + &root_name, + ) }) .with_file_drop_handler(move |window, evet| { file_handler