diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-22 11:07:25 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-22 11:07:45 -0500 |
commit | 365988f9df0c9f1c7d1e297012351efbc1bce8b4 (patch) | |
tree | 1fb87427432b072213d53bf343cf7c478f39cc1d | |
parent | a9248f4a43b101245816c2c7e403774cd375a98b (diff) | |
download | teleterm-365988f9df0c9f1c7d1e297012351efbc1bce8b4.tar.gz teleterm-365988f9df0c9f1c7d1e297012351efbc1bce8b4.zip |
move views out into separate modules
-rw-r--r-- | teleterm-web/src/lib.rs | 15 | ||||
-rw-r--r-- | teleterm-web/src/model.rs | 4 | ||||
-rw-r--r-- | teleterm-web/src/prelude.rs | 2 | ||||
-rw-r--r-- | teleterm-web/src/views.rs | 3 | ||||
-rw-r--r-- | teleterm-web/src/views/list.rs | 18 | ||||
-rw-r--r-- | teleterm-web/src/views/page.rs | 13 | ||||
-rw-r--r-- | teleterm-web/src/views/watch.rs | 5 | ||||
-rw-r--r-- | teleterm/static/teleterm_web.js | 64 | ||||
-rw-r--r-- | teleterm/static/teleterm_web_bg.wasm | bin | 681898 -> 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 Binary files differindex 1539609..f90031f 100644 --- a/teleterm/static/teleterm_web_bg.wasm +++ b/teleterm/static/teleterm_web_bg.wasm |