aboutsummaryrefslogtreecommitdiffstats
path: root/teleterm-web
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-25 12:13:52 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-25 12:13:52 -0500
commit9dea1a078c64c44065558b722d819a6b06bcc67f (patch)
tree1acd921fac1908c421bb4a5827f461cd650fc23f /teleterm-web
parentb8a98a2570149fd079861ee0b183739b85f28e84 (diff)
downloadteleterm-9dea1a078c64c44065558b722d819a6b06bcc67f.tar.gz
teleterm-9dea1a078c64c44065558b722d819a6b06bcc67f.zip
a bit more refactoring
Diffstat (limited to 'teleterm-web')
-rw-r--r--teleterm-web/src/model.rs34
-rw-r--r--teleterm-web/src/views/page.rs6
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