diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-25 12:13:52 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-25 12:13:52 -0500 |
commit | 9dea1a078c64c44065558b722d819a6b06bcc67f (patch) | |
tree | 1acd921fac1908c421bb4a5827f461cd650fc23f /teleterm-web | |
parent | b8a98a2570149fd079861ee0b183739b85f28e84 (diff) | |
download | teleterm-9dea1a078c64c44065558b722d819a6b06bcc67f.tar.gz teleterm-9dea1a078c64c44065558b722d819a6b06bcc67f.zip |
a bit more refactoring
Diffstat (limited to 'teleterm-web')
-rw-r--r-- | teleterm-web/src/model.rs | 34 | ||||
-rw-r--r-- | teleterm-web/src/views/page.rs | 6 |
2 files changed, 25 insertions, 15 deletions
diff --git a/teleterm-web/src/model.rs b/teleterm-web/src/model.rs index 68676b8..acd3e97 100644 --- a/teleterm-web/src/model.rs +++ b/teleterm-web/src/model.rs @@ -107,26 +107,34 @@ impl Model { } } - pub(crate) fn logged_in(&self) -> bool { + pub(crate) fn logging_in(&self) -> bool { if let State::Login = self.state { - false - } else { true + } else { + false } } - pub(crate) fn title(&self) -> &str { - &self.config.title + pub(crate) fn choosing(&self) -> bool { + if let State::List(..) = self.state { + true + } else { + false + } } - pub(crate) fn screen(&self) -> Option<&vt100::Screen> { - if let State::Watch(conn) = &self.state { - Some(conn.term.screen()) + pub(crate) fn watching(&self) -> bool { + if let State::Watch(..) = self.state { + true } else { - None + false } } + pub(crate) fn title(&self) -> &str { + &self.config.title + } + pub(crate) fn sessions(&self) -> &[crate::protocol::Session] { if let State::List(sessions) = &self.state { sessions @@ -135,11 +143,11 @@ impl Model { } } - pub(crate) fn watching(&self) -> bool { - if let State::Watch(..) = self.state { - true + pub(crate) fn screen(&self) -> Option<&vt100::Screen> { + if let State::Watch(conn) = &self.state { + Some(conn.term.screen()) } else { - false + None } } diff --git a/teleterm-web/src/views/page.rs b/teleterm-web/src/views/page.rs index 350e981..ed2f65c 100644 --- a/teleterm-web/src/views/page.rs +++ b/teleterm-web/src/views/page.rs @@ -3,12 +3,14 @@ use crate::prelude::*; pub(crate) fn render(model: &crate::model::Model) -> Vec<Node<crate::Msg>> { let mut view = vec![seed::h1![model.title()]]; - if !model.logged_in() { + if model.logging_in() { 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 { - view.extend(super::list::render(model)) + unreachable!() } view |