1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! This is useful only for testing
//! This is a simple component which just barely comply to being a component
//! use for doing component tests
//!
use crate::{
    html::div,
    Cmd,
    Component,
    Program,
};
use log::*;
use std::{
    cell::RefCell,
    rc::Rc,
};

#[derive(Clone)]
pub struct SimpleComponent;

impl Component<()> for SimpleComponent {
    fn update(&mut self, _msg: ()) -> Cmd<Self, ()> {
        trace!("updating in SimpleComponent");
        Cmd::none()
    }

    fn view(&self) -> crate::Node<()> {
        div(vec![], vec![])
    }
}

pub fn simple_component() -> Rc<RefCell<SimpleComponent>> {
    Rc::new(RefCell::new(SimpleComponent))
}

pub fn simple_program() -> Rc<Program<SimpleComponent, ()>> {
    Program::new_append_to_mount(SimpleComponent, &crate::body())
}