feat: use dom to allow context injection

This commit is contained in:
Jonathan Kelley 2022-12-30 22:10:06 -05:00
parent 880aa737a6
commit e3a8e44a69
2 changed files with 3 additions and 4 deletions

View file

@ -12,7 +12,8 @@ fn app(cx: Scope) -> Element {
div {
button {
onclick: move |_| {
window.new_window(popup, (), Default::default());
let dom = VirtualDom::new_with_props(app, props);
window.new_window(dom, Default::default());
},
"New Window"
}

View file

@ -4,7 +4,6 @@ use std::rc::Rc;
use crate::eval::EvalResult;
use crate::events::IpcMessage;
use crate::Config;
use dioxus_core::Component;
use dioxus_core::ScopeState;
use dioxus_core::VirtualDom;
use serde_json::Value;
@ -78,8 +77,7 @@ impl DesktopContext {
}
/// Create a new window using the props and window builder
pub fn new_window<T: 'static>(&self, app: Component<T>, props: T, cfg: Config) {
let dom = VirtualDom::new_with_props(app, props);
pub fn new_window<T: 'static>(&self, dom: VirtualDom, cfg: Config) {
self.pending_windows.borrow_mut().push((dom, cfg));
self.proxy
.send_event(UserWindowEvent(EventData::NewWindow, self.id()))