Fix inspect message only working when connected

This commit is contained in:
Joscha 2022-09-16 00:47:20 +02:00
parent e7041da098
commit 4c7ac31699

View file

@ -298,6 +298,33 @@ impl EuphRoom {
Text::new(info).into() Text::new(info).into()
} }
fn list_inspect_initiating_key_bindings(&self, bindings: &mut KeyBindingsList) {
bindings.binding("i", "inspect message");
bindings.binding("I", "show message links");
}
async fn handle_inspect_initiating_input_event(&mut self, event: &InputEvent) -> bool {
match event {
key!('i') => {
if let Some(id) = self.chat.cursor().await {
if let Some(msg) = self.vault.full_msg(id).await {
self.state = State::InspectMessage(msg);
}
}
true
}
key!('I') => {
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));
}
}
true
}
_ => false,
}
}
pub async fn list_normal_key_bindings(&self, bindings: &mut KeyBindingsList) { pub async fn list_normal_key_bindings(&self, bindings: &mut KeyBindingsList) {
bindings.binding("esc", "leave room"); bindings.binding("esc", "leave room");
@ -321,8 +348,7 @@ impl EuphRoom {
false false
}; };
bindings.binding("i", "inspect message"); self.list_inspect_initiating_key_bindings(bindings);
bindings.binding("I", "show message links");
bindings.empty(); bindings.empty();
self.chat.list_key_bindings(bindings, can_compose).await; self.chat.list_key_bindings(bindings, can_compose).await;
@ -356,25 +382,9 @@ impl EuphRoom {
} }
} }
match event { if self.handle_inspect_initiating_input_event(event).await {
key!('i') => {
if let Some(id) = self.chat.cursor().await {
if let Some(msg) = self.vault.full_msg(id).await {
self.state = State::InspectMessage(msg);
}
}
return true; return true;
} }
key!('I') => {
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() { match status.ok().flatten() {
Some(Status::Joining(Joining { Some(Status::Joining(Joining {
@ -412,12 +422,7 @@ impl EuphRoom {
return true; return true;
} }
if let key!('I') = event { if self.handle_inspect_initiating_input_event(event).await {
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; return true;
} }