diff options
Diffstat (limited to 'teleterm-web/src/views')
-rw-r--r-- | teleterm-web/src/views/list.rs | 18 | ||||
-rw-r--r-- | teleterm-web/src/views/page.rs | 13 | ||||
-rw-r--r-- | teleterm-web/src/views/watch.rs | 5 |
3 files changed, 36 insertions, 0 deletions
diff --git a/teleterm-web/src/views/list.rs b/teleterm-web/src/views/list.rs new file mode 100644 index 0000000..75fddf2 --- /dev/null +++ b/teleterm-web/src/views/list.rs @@ -0,0 +1,18 @@ +use crate::prelude::*; + +pub(crate) fn render(model: &crate::model::Model) -> Vec<Node<crate::Msg>> { + let mut list = vec![]; + for session in model.sessions() { + list.push(seed::li![seed::button![ + simple_ev( + Ev::Click, + crate::Msg::StartWatching(session.id.clone()) + ), + format!("{}: {}", session.username, session.id), + ]]); + } + vec![ + seed::ul![list], + seed::button![simple_ev(Ev::Click, crate::Msg::Refresh), "refresh"], + ] +} diff --git a/teleterm-web/src/views/page.rs b/teleterm-web/src/views/page.rs new file mode 100644 index 0000000..6f459da --- /dev/null +++ b/teleterm-web/src/views/page.rs @@ -0,0 +1,13 @@ +use crate::prelude::*; + +pub(crate) fn render(model: &crate::model::Model) -> Vec<Node<crate::Msg>> { + let mut view = vec![seed::h1!["teleterm"]]; + + if model.watching() { + view.push(super::watch::render(model)) + } else { + view.extend(super::list::render(model)) + } + + view +} diff --git a/teleterm-web/src/views/watch.rs b/teleterm-web/src/views/watch.rs new file mode 100644 index 0000000..a589596 --- /dev/null +++ b/teleterm-web/src/views/watch.rs @@ -0,0 +1,5 @@ +use crate::prelude::*; + +pub(crate) fn render(model: &crate::model::Model) -> Node<crate::Msg> { + seed::pre![model.screen()] +} |