Feat: remove old macro

This commit is contained in:
Jonathan Kelley committed 2021-03-13 19:11:06 -05:00
1 parent e66827ec92
commit 9d0727edab
43 files changed
+208 -2306

No files matched your search

+13 -3
View File
@@ -1,4 +1,4 @@
use std::{borrow::Borrow, convert::TryInto, fmt::Debug, sync::Arc};
use std::{borrow::Borrow, convert::TryInto, default, fmt::Debug, sync::Arc};
use dioxus_core::{
events::{EventTrigger, VirtualEvent},
@@ -27,6 +27,8 @@ impl std::fmt::Debug for RootCallback {
pub(crate) struct PatchMachine {
pub(crate) stack: Stack,
pub(crate) known_roots: FxHashMap<u32, Node>,
pub(crate) root: Element,
pub(crate) temporaries: FxHashMap<u32, Node>,
@@ -165,6 +167,7 @@ impl PatchMachine {
let events = EventDelegater::new(root.clone(), event_callback);
Self {
known_roots: Default::default(),
root,
events,
stack: Stack::with_capacity(20),
@@ -476,8 +479,15 @@ impl PatchMachine {
el.set_class_name(class_name);
}
}
Edit::TraverseToKnown { node } => {}
Edit::MakeKnown { node } => {}
Edit::MakeKnown { node } => {
let domnode = self.stack.top();
self.known_roots.insert(node, domnode.clone());
}
Edit::TraverseToKnown { node } => {
let domnode = self.known_roots.get(&node).expect("Failed to pop know root");
self.stack.push(domnode.clone());
}
Edit::RemoveKnown => {}
}
}
+3 -3
View File
@@ -9,7 +9,7 @@ use web_sys::{window, Document, Element, Event, Node};
use dioxus::virtual_dom::VirtualDom;
pub use dioxus_core as dioxus;
use dioxus_core::{events::EventTrigger, prelude::FC};
use futures::{channel::mpsc, SinkExt, StreamExt};
// use futures::{channel::mpsc, SinkExt, StreamExt};
pub mod interpreter;
@@ -58,7 +58,7 @@ impl WebsysRenderer {
}
pub async fn run(&mut self) -> dioxus_core::error::Result<()> {
let (sender, mut receiver) = mpsc::unbounded::<EventTrigger>();
let (sender, mut receiver) = async_channel::unbounded::<EventTrigger>();
let body_element = prepare_websys_dom();
@@ -85,7 +85,7 @@ impl WebsysRenderer {
// Event loop waits for the receiver to finish up
// TODO! Connect the sender to the virtual dom's suspense system
// Suspense is basically an external event that can force renders to specific nodes
while let Some(event) = receiver.next().await {
while let Ok(event) = receiver.recv().await {
// log::debug!("patch stack size before {:#?}", patch_machine.stack);
// patch_machine.reset();
// patch_machine.stack.push(root_node.clone());