Fix nested rsx expansion by not using template titles (#2799)
* Fix nested rsx expansion by not using template titles * fix writers with nameless templates * fix clippy * dont commit vscode fix * fix release mode, pull out __template_name * fix axum_desktop * Fix core tests * Make most fields of HotReloadedTemplate public for testing * wip: formatting, compare all diff cases * slightly smarter diffing for dynamic nodes * add a comment about generic node diffing * clean up mutations a bit * fix load template * simplify maybe_rebuild * Restore write mutations flag in web * write_mutations -> skip_mutations --------- Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
This commit is contained in:
1 parent
a2180b92e9
commit
0de3bf7aeb
40 files changed
+597
-1038
No files matched your search
@@ -25,6 +25,7 @@ use std::{panic, rc::Rc};
|
||||
pub use crate::cfg::Config;
|
||||
use crate::hydration::SuspenseMessage;
|
||||
use dioxus_core::VirtualDom;
|
||||
use dom::WebsysDom;
|
||||
use futures_util::{pin_mut, select, FutureExt, StreamExt};
|
||||
|
||||
mod cfg;
|
||||
@@ -77,7 +78,7 @@ pub async fn run(virtual_dom: VirtualDom, web_config: Config) -> ! {
|
||||
|
||||
let should_hydrate = web_config.hydrate;
|
||||
|
||||
let mut websys_dom = dom::WebsysDom::new(web_config, tx);
|
||||
let mut websys_dom = WebsysDom::new(web_config, tx);
|
||||
|
||||
let mut hydration_receiver: Option<futures_channel::mpsc::UnboundedReceiver<SuspenseMessage>> =
|
||||
None;
|
||||
@@ -85,7 +86,7 @@ pub async fn run(virtual_dom: VirtualDom, web_config: Config) -> ! {
|
||||
if should_hydrate {
|
||||
#[cfg(feature = "hydrate")]
|
||||
{
|
||||
websys_dom.only_write_templates = true;
|
||||
websys_dom.skip_mutations = true;
|
||||
// Get the initial hydration data from the client
|
||||
#[wasm_bindgen::prelude::wasm_bindgen(inline_js = r#"
|
||||
export function get_initial_hydration_data() {
|
||||
@@ -105,7 +106,7 @@ pub async fn run(virtual_dom: VirtualDom, web_config: Config) -> ! {
|
||||
with_server_data(server_data, || {
|
||||
dom.rebuild(&mut websys_dom);
|
||||
});
|
||||
websys_dom.only_write_templates = false;
|
||||
websys_dom.skip_mutations = false;
|
||||
|
||||
let rx = websys_dom.rehydrate(&dom).unwrap();
|
||||
hydration_receiver = Some(rx);
|
||||
|
||||
Reference in new issue
Block a user