Switch euph::Room to use euphoxide's Instance

This commit is contained in:
Joscha 2023-01-23 22:35:00 +01:00
parent b94dfbdc31
commit 8dd5db5888
5 changed files with 408 additions and 640 deletions

View file

@ -17,7 +17,6 @@ use tokio::task;
use toss::terminal::Terminal;
use crate::config::Config;
use crate::euph::EuphRoomEvent;
use crate::logger::{LogMsg, Logger};
use crate::macros::{ok_or_return, some_or_return};
use crate::vault::Vault;
@ -37,7 +36,7 @@ pub enum UiEvent {
GraphemeWidthsChanged,
LogChanged,
Term(crossterm::event::Event),
EuphRoom { name: String, event: EuphRoomEvent },
Euph(euphoxide::bot::instance::Event),
}
enum EventHandleResult {
@ -94,7 +93,7 @@ impl Ui {
let mut ui = Self {
event_tx: event_tx.clone(),
mode: Mode::Main,
rooms: Rooms::new(config, vault, event_tx.clone()),
rooms: Rooms::new(config, vault, event_tx.clone()).await,
log_chat: ChatState::new(logger),
key_bindings_list: None,
};
@ -230,9 +229,8 @@ impl Ui {
self.handle_term_event(terminal, crossterm_lock, event)
.await
}
UiEvent::EuphRoom { name, event } => {
let handled = self.handle_euph_room_event(name, event).await;
if self.mode == Mode::Main && handled {
UiEvent::Euph(event) => {
if self.rooms.handle_euph_event(event) {
EventHandleResult::Redraw
} else {
EventHandleResult::Continue
@ -311,9 +309,4 @@ impl Ui {
EventHandleResult::Continue
}
}
async fn handle_euph_room_event(&mut self, name: String, event: EuphRoomEvent) -> bool {
let handled = self.rooms.handle_euph_room_event(name, event);
handled && self.mode == Mode::Main
}
}