aboutsummaryrefslogtreecommitdiffstats
path: root/teleterm-web/src/views/page.rs
blob: 1d2b5cda2932baf9f5591bc39efc0806b7c62ba8 (plain) (blame)
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
use crate::prelude::*;

pub(crate) fn render(model: &crate::model::Model) -> Vec<Node<crate::Msg>> {
    let mut view = vec![seed::h1![model.title()]];

    if let Some(username) = model.username() {
        view.push(seed::p![format!("logged in as {}", username)]);
    } else {
        view.push(seed::p!["not logged in"]);
    }

    if model.logging_in() {
        if model.username().is_some() {
            view.push(seed::p!["loading..."]);
        } else {
            view.extend(super::login::render(model))
        }
    } else if model.choosing() {
        view.extend(super::list::render(model))
    } else if model.watching() {
        view.extend(super::watch::render(model))
    } else {
        unreachable!()
    }

    view
}