123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- // TODO: fix #1935
- // #![allow(unused, non_upper_case_globals, non_snake_case)]
- // use dioxus_core::NoOpMutations;
- // use std::collections::HashMap;
- // use std::rc::Rc;
- // use dioxus::html::p;
- // use dioxus::prelude::*;
- // use dioxus_core::ElementId;
- // use dioxus_signals::*;
- // use std::cell::RefCell;
- // #[test]
- // fn memos_rerun() {
- // let _ = simple_logger::SimpleLogger::new().init();
- // #[derive(Default)]
- // struct RunCounter {
- // component: usize,
- // effect: usize,
- // }
- // let counter = Rc::new(RefCell::new(RunCounter::default()));
- // let mut dom = VirtualDom::new_with_props(
- // |counter: Rc<RefCell<RunCounter>>| {
- // counter.borrow_mut().component += 1;
- // let mut signal = use_signal(|| 0);
- // let memo = use_memo({
- // to_owned![counter];
- // move || {
- // counter.borrow_mut().effect += 1;
- // println!("Signal: {:?}", signal);
- // signal()
- // }
- // });
- // assert_eq!(memo(), 0);
- // signal += 1;
- // assert_eq!(memo(), 1);
- // rsx! {
- // div {}
- // }
- // },
- // counter.clone(),
- // );
- // dom.rebuild_in_place();
- // let current_counter = counter.borrow();
- // assert_eq!(current_counter.component, 1);
- // assert_eq!(current_counter.effect, 2);
- // }
- // #[test]
- // fn memos_prevents_component_rerun() {
- // let _ = simple_logger::SimpleLogger::new().init();
- // #[derive(Default)]
- // struct RunCounter {
- // component: usize,
- // memo: usize,
- // }
- // let counter = Rc::new(RefCell::new(RunCounter::default()));
- // let mut dom = VirtualDom::new_with_props(
- // |props: Rc<RefCell<RunCounter>>| {
- // let mut signal = use_signal(|| 0);
- // if generation() == 1 {
- // *signal.write() = 0;
- // }
- // if generation() == 2 {
- // println!("Writing to signal");
- // *signal.write() = 1;
- // }
- // rsx! {
- // Child {
- // signal: signal,
- // counter: props.clone(),
- // }
- // }
- // },
- // counter.clone(),
- // );
- // #[derive(Default, Props, Clone)]
- // struct ChildProps {
- // signal: Signal<usize>,
- // counter: Rc<RefCell<RunCounter>>,
- // }
- // impl PartialEq for ChildProps {
- // fn eq(&self, other: &Self) -> bool {
- // self.signal == other.signal
- // }
- // }
- // fn Child(props: ChildProps) -> Element {
- // let counter = &props.counter;
- // let signal = props.signal;
- // counter.borrow_mut().component += 1;
- // let memo = use_memo({
- // to_owned![counter];
- // move || {
- // counter.borrow_mut().memo += 1;
- // println!("Signal: {:?}", signal);
- // signal()
- // }
- // });
- // match generation() {
- // 0 => {
- // assert_eq!(memo(), 0);
- // }
- // 1 => {
- // assert_eq!(memo(), 1);
- // }
- // _ => panic!("Unexpected generation"),
- // }
- // rsx! {
- // div {}
- // }
- // }
- // dom.rebuild_in_place();
- // dom.mark_dirty(ScopeId::ROOT);
- // dom.render_immediate(&mut NoOpMutations);
- // {
- // let current_counter = counter.borrow();
- // assert_eq!(current_counter.component, 1);
- // assert_eq!(current_counter.memo, 2);
- // }
- // dom.mark_dirty(ScopeId::ROOT);
- // dom.render_immediate(&mut NoOpMutations);
- // dom.render_immediate(&mut NoOpMutations);
- // {
- // let current_counter = counter.borrow();
- // assert_eq!(current_counter.component, 2);
- // assert_eq!(current_counter.memo, 3);
- // }
- // }
|