Provide option to do full rebuilds when nessisary

This commit is contained in:
Evan Almloff committed 2023-01-13 16:13:07 -06:00
1 parent 3c229b38bc
commit b3d119b815
6 files changed
+217 -95

No files matched your search

+2 -2
View File
@@ -8,8 +8,8 @@ use crate::events::IpcMessage;
use crate::Config;
use crate::WebviewHandler;
use dioxus_core::ScopeState;
use dioxus_core::Template;
use dioxus_core::VirtualDom;
use dioxus_hot_reload::HotReloadMsg;
use serde_json::Value;
use wry::application::event_loop::EventLoopProxy;
use wry::application::event_loop::EventLoopWindowTarget;
@@ -263,7 +263,7 @@ pub enum EventData {
Ipc(IpcMessage),
TemplateUpdated(Template<'static>),
HotReloadEvent(HotReloadMsg),
NewWindow,
+11 -6
View File
@@ -112,7 +112,7 @@ pub fn launch_with_props<P: 'static>(root: Component<P>, props: P, cfg: Config)
let proxy = proxy.clone();
dioxus_hot_reload::connect(move |template| {
let _ = proxy.send_event(UserWindowEvent(
EventData::TemplateUpdated(template),
EventData::HotReloadEvent(template),
unsafe { WindowId::dummy() },
));
});
@@ -177,13 +177,18 @@ pub fn launch_with_props<P: 'static>(root: Component<P>, props: P, cfg: Config)
}
Event::UserEvent(event) => match event.0 {
EventData::TemplateUpdated(template) => {
for webview in webviews.values_mut() {
webview.dom.replace_template(template);
EventData::HotReloadEvent(msg) => match msg {
dioxus_hot_reload::HotReloadMsg::UpdateTemplate(template) => {
for webview in webviews.values_mut() {
webview.dom.replace_template(template);
poll_vdom(webview);
poll_vdom(webview);
}
}
}
dioxus_hot_reload::HotReloadMsg::Shutdown => {
*control_flow = ControlFlow::Exit;
}
},
EventData::CloseWindow => {
webviews.remove(&event.1);