From 9dea1a078c64c44065558b722d819a6b06bcc67f Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 25 Nov 2019 12:13:52 -0500 Subject: a bit more refactoring --- teleterm-web/src/model.rs | 34 +++++++++++++++++++++------------- teleterm-web/src/views/page.rs | 6 ++++-- 2 files changed, 25 insertions(+), 15 deletions(-) (limited to 'teleterm-web') 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> { 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 -- cgit v1.2.3-54-g00ecf