use crate::*;
#[derive(Clone, Copy)]
pub struct UseLifecycle {
pub render_count: Signal<i32>,
pub logs: Signal<Vec<String>>,
}
pub fn use_lifecycle() -> UseLifecycle {
UseLifecycle {
render_count: use_signal(|| 1),
logs: use_signal(|| vec!["Component mounted".to_string()]),
}
}
pub fn lifecycle_on_trigger(state: UseLifecycle) -> NativeEventHandler {
NativeEventHandler::new(NativeEventName::Click, move |_event: NativeEvent| {
let current: i32 = state.render_count.get();
state.render_count.set(current + 1);
let mut current_logs: Vec<String> = state.logs.get();
current_logs.push(format!("Updated: render count = {}", current + 1));
state.logs.set(current_logs);
})
}