Render list of rooms
This commit is contained in:
parent
2d31d3d4e2
commit
e5910f45b4
2 changed files with 98 additions and 16 deletions
|
|
@ -1,16 +1,21 @@
|
|||
mod rooms;
|
||||
|
||||
use std::collections::HashMap;
|
||||
use std::io::Stdout;
|
||||
use std::sync::Arc;
|
||||
|
||||
use crossterm::event::{Event, EventStream, KeyCode, KeyEvent, MouseEvent, MouseEventKind};
|
||||
use futures::StreamExt;
|
||||
use tokio::sync::mpsc::error::TryRecvError;
|
||||
use tokio::sync::mpsc::{self, UnboundedReceiver, UnboundedSender};
|
||||
use tokio::sync::Mutex;
|
||||
use tui::backend::CrosstermBackend;
|
||||
use tui::layout::{Constraint, Direction, Layout};
|
||||
use tui::widgets::Paragraph;
|
||||
use tui::{Frame, Terminal};
|
||||
|
||||
use crate::room::Room;
|
||||
|
||||
use self::rooms::{Rooms, RoomsState};
|
||||
|
||||
pub type Backend = CrosstermBackend<Stdout>;
|
||||
|
|
@ -28,6 +33,7 @@ enum EventHandleResult {
|
|||
|
||||
pub struct Ui {
|
||||
event_tx: UnboundedSender<UiEvent>,
|
||||
rooms: HashMap<String, Arc<Mutex<Room>>>,
|
||||
rooms_state: RoomsState,
|
||||
log: Vec<String>,
|
||||
}
|
||||
|
|
@ -36,6 +42,7 @@ impl Ui {
|
|||
fn new(event_tx: UnboundedSender<UiEvent>) -> Self {
|
||||
Self {
|
||||
event_tx,
|
||||
rooms: HashMap::new(),
|
||||
rooms_state: RoomsState::default(),
|
||||
log: vec!["Hello world!".to_string()],
|
||||
}
|
||||
|
|
@ -155,7 +162,8 @@ impl Ui {
|
|||
])
|
||||
.split(frame.size());
|
||||
|
||||
frame.render_stateful_widget(Rooms::new(), outer[0], &mut self.rooms_state);
|
||||
// frame.render_stateful_widget(Rooms::new(&self.rooms), outer[0], &mut self.rooms_state);
|
||||
frame.render_stateful_widget(Rooms::dummy(), outer[0], &mut self.rooms_state);
|
||||
|
||||
let scroll = if self.log.len() as u16 > outer[1].height {
|
||||
self.log.len() as u16 - outer[1].height
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue