aboutsummaryrefslogtreecommitdiffstats
path: root/teleterm-web
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-22 11:47:32 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-22 11:47:32 -0500
commite6b6398033125d2fc6dce32e61458e0724bddb6a (patch)
treee9d0dfdd25e2c10cef2ca8437863ee3776c47f49 /teleterm-web
parent52e5cc942dca20afa7912d09f5e1fa2a56c75bef (diff)
downloadteleterm-e6b6398033125d2fc6dce32e61458e0724bddb6a.tar.gz
teleterm-e6b6398033125d2fc6dce32e61458e0724bddb6a.zip
start working on watch display
Diffstat (limited to 'teleterm-web')
-rw-r--r--teleterm-web/src/model.rs8
-rw-r--r--teleterm-web/src/views/watch.rs19
2 files changed, 20 insertions, 7 deletions
diff --git a/teleterm-web/src/model.rs b/teleterm-web/src/model.rs
index fa0cb63..72ac8c3 100644
--- a/teleterm-web/src/model.rs
+++ b/teleterm-web/src/model.rs
@@ -67,11 +67,7 @@ impl Model {
}
}
- pub fn screen(&self) -> String {
- if let Some(conn) = &self.watch_conn {
- conn.term.screen().contents()
- } else {
- "".to_string()
- }
+ pub fn screen(&self) -> Option<&vt100::Screen> {
+ self.watch_conn.as_ref().map(|conn| conn.term.screen())
}
}
diff --git a/teleterm-web/src/views/watch.rs b/teleterm-web/src/views/watch.rs
index a589596..07e8244 100644
--- a/teleterm-web/src/views/watch.rs
+++ b/teleterm-web/src/views/watch.rs
@@ -1,5 +1,22 @@
use crate::prelude::*;
pub(crate) fn render(model: &crate::model::Model) -> Node<crate::Msg> {
- seed::pre![model.screen()]
+ let screen = if let Some(screen) = model.screen() {
+ screen
+ } else {
+ return seed::empty![];
+ };
+ let (rows, cols) = screen.size();
+
+ let mut grid = vec![];
+ for row_idx in 0..rows {
+ let mut row = vec![];
+ for col_idx in 0..cols {
+ let cell = screen.cell(row_idx, col_idx).unwrap();
+ row.push(seed::div![cell.contents()])
+ }
+ grid.push(seed::div![row]);
+ }
+
+ seed::div![grid]
}