Fix onmounted event triggering many times (#3346)

* Fix event handler diffing

* Add headless tests for the onmounted event

* fix typo triggerd -> triggered
This commit is contained in:
Evan Almloff authored and GitHub committed 2024-12-17 15:21:15 -08:00
1 parent 01c5716128
commit c0e01f99af
8 files changed
+126 -38

No files matched your search

@@ -54,6 +54,7 @@ fn app() -> Element {
fn test_mounted() -> Element {
use_hook(|| utils::EXPECTED_EVENTS.with_mut(|x| *x += 1));
let mut onmounted_triggered = use_signal(|| false);
rsx! {
div {
@@ -65,6 +66,10 @@ fn test_mounted() -> Element {
assert_eq!(rect.width(), 100.0);
assert_eq!(rect.height(), 100.0);
RECEIVED_EVENTS.with_mut(|x| *x += 1);
// Onmounted should only be called once
let mut onmounted_triggered_write = onmounted_triggered.write();
assert!(!*onmounted_triggered_write);
*onmounted_triggered_write = true;
}
}
}