diff --git a/src/ui/euph/room.rs b/src/ui/euph/room.rs index 3395205..7db984d 100644 --- a/src/ui/euph/room.rs +++ b/src/ui/euph/room.rs @@ -331,15 +331,6 @@ impl EuphRoom { crossterm_lock: &Arc>, event: &InputEvent, ) -> bool { - if let key!('I') = event { - if let Some(id) = self.chat.cursor().await { - if let Some(msg) = self.vault.msg(&id).await { - self.state = State::Links(LinksState::new(&msg.content)); - } - } - return true; - } - if let Some(room) = &self.room { let status = room.status().await; let can_compose = matches!(status, Ok(Some(Status::Joined(_)))); @@ -362,6 +353,15 @@ impl EuphRoom { } } + if let key!('I') = event { + if let Some(id) = self.chat.cursor().await { + if let Some(msg) = self.vault.msg(&id).await { + self.state = State::Links(LinksState::new(&msg.content)); + } + } + return true; + } + match status.ok().flatten() { Some(Status::Joining(Joining { bounce: Some(_), .. @@ -389,10 +389,25 @@ impl EuphRoom { _ => false, } } else { - self.chat + if self + .chat .handle_input_event(terminal, crossterm_lock, event, false) .await .handled() + { + return true; + } + + if let key!('I') = event { + if let Some(id) = self.chat.cursor().await { + if let Some(msg) = self.vault.msg(&id).await { + self.state = State::Links(LinksState::new(&msg.content)); + } + } + return true; + } + + false } }