diff --git a/src/terminal/command.rs b/src/terminal/command.rs index 86c0c99..b8849df 100644 --- a/src/terminal/command.rs +++ b/src/terminal/command.rs @@ -11,7 +11,19 @@ impl PulseTradeApp { ctx.close().await; } - _ => {} + _ => { + if let Err(e) = self + .sock + .as_mut() + .unwrap() + .send(pulse_wire::terminal::TerminalClientMessage::ExecuteCommand( + command.to_string(), + )) + .await + { + eprintln!("{e}"); + } + } } } } diff --git a/src/terminal/main.rs b/src/terminal/main.rs index 4bd019a..c0d3faf 100644 --- a/src/terminal/main.rs +++ b/src/terminal/main.rs @@ -26,6 +26,8 @@ use pulse_wire::terminal::{ }; pub struct PulseTradeApp { + sock: Option, + command: State, scroll: State>, watch_list: State>, @@ -169,16 +171,11 @@ impl App for PulseTradeApp { #[tokio::main] async fn main() -> tokio::io::Result<()> { - let mut client = terminal::TerminalClient::new().await?; - - client - .send(pulse_wire::terminal::TerminalClientMessage::ExecuteCommand( - "Hello".to_string(), - )) - .await?; + let client = terminal::TerminalClient::new().await?; pulse_ui::run(|ctx| { client.use_app(PulseTradeApp { + sock: None, command: ctx.use_state(InputState::new()), scroll: ctx.use_state(ScrollState(1, [0; 7])), watch_list: ctx.use_state(Vec::new()), diff --git a/src/terminal/terminal.rs b/src/terminal/terminal.rs index c58aea4..617979d 100644 --- a/src/terminal/terminal.rs +++ b/src/terminal/terminal.rs @@ -36,7 +36,7 @@ impl TerminalClient { Ok(()) } - pub fn use_app(&mut self, app: PulseTradeApp) -> PulseTradeApp { + pub fn use_app(mut self, mut app: PulseTradeApp) -> PulseTradeApp { let mut reader = None; std::mem::swap(&mut self.reader, &mut reader); @@ -104,6 +104,8 @@ impl TerminalClient { } }); + app.sock = Some(self); + app } }