Fix inspect message only working when connected
This commit is contained in:
parent
e7041da098
commit
4c7ac31699
1 changed files with 31 additions and 26 deletions
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue