aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-22 11:07:25 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-22 11:07:45 -0500
commit365988f9df0c9f1c7d1e297012351efbc1bce8b4 (patch)
tree1fb87427432b072213d53bf343cf7c478f39cc1d
parenta9248f4a43b101245816c2c7e403774cd375a98b (diff)
downloadteleterm-365988f9df0c9f1c7d1e297012351efbc1bce8b4.tar.gz
teleterm-365988f9df0c9f1c7d1e297012351efbc1bce8b4.zip
move views out into separate modules
-rw-r--r--teleterm-web/src/lib.rs15
-rw-r--r--teleterm-web/src/model.rs4
-rw-r--r--teleterm-web/src/prelude.rs2
-rw-r--r--teleterm-web/src/views.rs3
-rw-r--r--teleterm-web/src/views/list.rs18
-rw-r--r--teleterm-web/src/views/page.rs13
-rw-r--r--teleterm-web/src/views/watch.rs5
-rw-r--r--teleterm/static/teleterm_web.js64
-rw-r--r--teleterm/static/teleterm_web_bg.wasmbin681898 -> 673461 bytes
9 files changed, 78 insertions, 46 deletions
diff --git a/teleterm-web/src/lib.rs b/teleterm-web/src/lib.rs
index 5dd5a33..118ab2f 100644
--- a/teleterm-web/src/lib.rs
+++ b/teleterm-web/src/lib.rs
@@ -1,6 +1,7 @@
mod model;
mod prelude;
mod protocol;
+mod views;
mod ws;
use crate::prelude::*;
@@ -72,19 +73,7 @@ fn update(
fn view(model: &crate::model::Model) -> impl View<Msg> {
log::trace!("view");
- let mut list = vec![];
- for session in model.sessions() {
- list.push(seed::li![seed::button![
- simple_ev(Ev::Click, Msg::StartWatching(session.id.clone())),
- format!("{}: {}", session.username, session.id),
- ]]);
- }
- vec![
- seed::h1!["it's a seed app"],
- seed::ul![list],
- seed::button![simple_ev(Ev::Click, Msg::Refresh), "refresh"],
- seed::pre![model.screen()],
- ]
+ crate::views::page::render(model)
}
#[wasm_bindgen(start)]
diff --git a/teleterm-web/src/model.rs b/teleterm-web/src/model.rs
index c3428e1..f83036b 100644
--- a/teleterm-web/src/model.rs
+++ b/teleterm-web/src/model.rs
@@ -56,6 +56,10 @@ impl Model {
self.sessions = sessions;
}
+ pub fn watching(&self) -> bool {
+ self.watch_conn.is_some()
+ }
+
pub fn process(&mut self, bytes: &[u8]) {
if let Some(conn) = &mut self.watch_conn {
conn.term.process(bytes);
diff --git a/teleterm-web/src/prelude.rs b/teleterm-web/src/prelude.rs
index 369318c..afab8ab 100644
--- a/teleterm-web/src/prelude.rs
+++ b/teleterm-web/src/prelude.rs
@@ -1,2 +1,2 @@
pub use seed::prelude::*;
-pub use web_sys::*;
+pub use web_sys::{ErrorEvent, MessageEvent, WebSocket};
diff --git a/teleterm-web/src/views.rs b/teleterm-web/src/views.rs
new file mode 100644
index 0000000..c26a877
--- /dev/null
+++ b/teleterm-web/src/views.rs
@@ -0,0 +1,3 @@
+pub mod list;
+pub mod page;
+pub mod watch;
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()]
+}
diff --git a/teleterm/static/teleterm_web.js b/teleterm/static/teleterm_web.js
index afcfaf9..83f0d90 100644
--- a/teleterm/static/teleterm_web.js
+++ b/teleterm/static/teleterm_web.js
@@ -24,25 +24,25 @@ function __wbg_elem_binding1(arg0, arg1, arg2) {
wasm.__wbg_function_table.get(55)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding2(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(59)(arg0, arg1, arg2);
-}
-function __wbg_elem_binding3(arg0, arg1, arg2) {
wasm.__wbg_function_table.get(55)(arg0, arg1, addHeapObject(arg2));
}
-function __wbg_elem_binding4(arg0, arg1) {
- wasm.__wbg_function_table.get(216)(arg0, arg1);
+function __wbg_elem_binding3(arg0, arg1, arg2) {
+ wasm.__wbg_function_table.get(59)(arg0, arg1, arg2);
}
-function __wbg_elem_binding5(arg0, arg1, arg2) {
+function __wbg_elem_binding4(arg0, arg1, arg2) {
wasm.__wbg_function_table.get(55)(arg0, arg1, addHeapObject(arg2));
}
+function __wbg_elem_binding5(arg0, arg1) {
+ wasm.__wbg_function_table.get(218)(arg0, arg1);
+}
function __wbg_elem_binding6(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(286)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(288)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding7(arg0, arg1, arg2, arg3, arg4) {
- wasm.__wbg_function_table.get(313)(arg0, arg1, addHeapObject(arg2), arg3, addHeapObject(arg4));
+ wasm.__wbg_function_table.get(315)(arg0, arg1, addHeapObject(arg2), arg3, addHeapObject(arg4));
}
function __wbg_elem_binding8(arg0, arg1, arg2, arg3) {
- wasm.__wbg_function_table.get(317)(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
+ wasm.__wbg_function_table.get(319)(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
}
/**
*/
@@ -236,9 +236,6 @@ function init(module) {
const ret = getStringFromWasm(arg0, arg1);
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_cb_forget = function(arg0) {
- takeObject(arg0);
- };
imports.wbg.__wbindgen_cb_drop = function(arg0) {
const obj = takeObject(arg0).original;
if (obj.cnt-- == 1) {
@@ -248,6 +245,9 @@ function init(module) {
const ret = false;
return ret;
};
+ imports.wbg.__wbindgen_cb_forget = function(arg0) {
+ takeObject(arg0);
+ };
imports.wbg.__wbindgen_json_parse = function(arg0, arg1) {
const ret = JSON.parse(getStringFromWasm(arg0, arg1));
return addHeapObject(ret);
@@ -884,14 +884,14 @@ function init(module) {
imports.wbg.__wbindgen_throw = function(arg0, arg1) {
throw new Error(getStringFromWasm(arg0, arg1));
};
- imports.wbg.__wbindgen_closure_wrapper241 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper252 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding2(a, state.b, arg0);
+ return __wbg_elem_binding1(a, state.b, arg0);
} finally {
if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
else state.a = a;
@@ -902,14 +902,14 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper239 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper254 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding3(a, state.b, arg0);
+ return __wbg_elem_binding4(a, state.b, arg0);
} finally {
if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
else state.a = a;
@@ -920,14 +920,14 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper243 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper246 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding5(a, state.b, arg0);
+ return __wbg_elem_binding2(a, state.b, arg0);
} finally {
if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
else state.a = a;
@@ -938,16 +938,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper245 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper615 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
- const real = (arg0) => {
+ const real = () => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding1(a, state.b, arg0);
+ return __wbg_elem_binding5(a, state.b, );
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(219)(a, state.b);
else state.a = a;
}
}
@@ -956,16 +956,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper247 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper1026 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding0(a, state.b, arg0);
+ return __wbg_elem_binding6(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(289)(a, state.b);
else state.a = a;
}
}
@@ -974,16 +974,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper607 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper250 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
- const real = () => {
+ const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding4(a, state.b, );
+ return __wbg_elem_binding0(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(217)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
else state.a = a;
}
}
@@ -992,16 +992,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper1018 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper248 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding6(a, state.b, arg0);
+ return __wbg_elem_binding3(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(287)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
else state.a = a;
}
}
diff --git a/teleterm/static/teleterm_web_bg.wasm b/teleterm/static/teleterm_web_bg.wasm
index 1539609..f90031f 100644
--- a/teleterm/static/teleterm_web_bg.wasm
+++ b/teleterm/static/teleterm_web_bg.wasm
Binary files differ