minor re-org
This commit is contained in:
parent
a0deb3d53e
commit
98a3a74490
1 changed files with 64 additions and 68 deletions
|
@ -8,6 +8,70 @@ use ratatui::{
|
||||||
|
|
||||||
use crate::{App, frontend::Peers};
|
use crate::{App, frontend::Peers};
|
||||||
|
|
||||||
|
impl App {
|
||||||
|
pub fn draw(&self, frame: &mut Frame) {
|
||||||
|
let [top, middle, bottom] = Layout::default()
|
||||||
|
.direction(Direction::Vertical)
|
||||||
|
.constraints([Constraint::Min(3), Constraint::Min(3), Constraint::Min(3)])
|
||||||
|
.split(frame.area())
|
||||||
|
.as_array()
|
||||||
|
.cloned()
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
let [footer_left, footer_right] = Layout::default()
|
||||||
|
.direction(Direction::Horizontal)
|
||||||
|
.constraints([Constraint::Percentage(50), Constraint::Percentage(50)])
|
||||||
|
.split(bottom)
|
||||||
|
.as_array()
|
||||||
|
.cloned()
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
frame.render_widget(self, frame.area());
|
||||||
|
network_info(frame, footer_left);
|
||||||
|
peers(&self.peers, frame, footer_right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn peers(peers: &Peers, frame: &mut Frame, area: Rect) {
|
||||||
|
let mut items = Vec::with_capacity(peers.len());
|
||||||
|
for (k, v) in peers.iter() {
|
||||||
|
let item = format!("{:?}: {} ({})", k, v.0, v.1);
|
||||||
|
let s = Line::from(item.yellow());
|
||||||
|
|
||||||
|
let item = ListItem::new(s);
|
||||||
|
items.push(item);
|
||||||
|
}
|
||||||
|
let title = Line::from(" Peers ".bold()).centered();
|
||||||
|
let block = Block::default().title(title).borders(Borders::all());
|
||||||
|
let list = List::new(items).block(block);
|
||||||
|
frame.render_widget(list, area);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn network_info(frame: &mut Frame, area: Rect) {
|
||||||
|
let udp: Line = format!(" UDP socket:\t\t{:?}", joecalsend::LISTENING_SOCKET_ADDR)
|
||||||
|
.yellow()
|
||||||
|
.into();
|
||||||
|
let multicast: Line = format!(
|
||||||
|
" Multicast address:\t{:?}:{}",
|
||||||
|
joecalsend::MULTICAST_IP,
|
||||||
|
joecalsend::DEFAULT_PORT
|
||||||
|
)
|
||||||
|
.yellow()
|
||||||
|
.into();
|
||||||
|
let http: Line = format!(" HTTP address:\t\t{:?}", joecalsend::LISTENING_SOCKET_ADDR)
|
||||||
|
.yellow()
|
||||||
|
.into();
|
||||||
|
let items = [
|
||||||
|
ListItem::new(udp),
|
||||||
|
ListItem::new(multicast),
|
||||||
|
ListItem::new(http),
|
||||||
|
];
|
||||||
|
let title = Line::from(" Listeners ".bold()).centered();
|
||||||
|
let block = Block::default().title(title).borders(Borders::all());
|
||||||
|
let list = List::new(items).block(block);
|
||||||
|
frame.render_widget(list, area);
|
||||||
|
}
|
||||||
|
|
||||||
// helper function to create a centered rect using up certain percentage of the
|
// helper function to create a centered rect using up certain percentage of the
|
||||||
// available rect `r`
|
// available rect `r`
|
||||||
fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect {
|
fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect {
|
||||||
|
@ -31,71 +95,3 @@ fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect {
|
||||||
])
|
])
|
||||||
.split(popup_layout[1])[1] // Return the middle chunk
|
.split(popup_layout[1])[1] // Return the middle chunk
|
||||||
}
|
}
|
||||||
|
|
||||||
impl App {
|
|
||||||
pub fn draw(&self, frame: &mut Frame) {
|
|
||||||
let [top, middle, bottom] = Layout::default()
|
|
||||||
.direction(Direction::Vertical)
|
|
||||||
.constraints([Constraint::Min(3), Constraint::Min(3), Constraint::Min(3)])
|
|
||||||
.split(frame.area())
|
|
||||||
.as_array()
|
|
||||||
.cloned()
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let [footer_left, footer_right] = Layout::default()
|
|
||||||
.direction(Direction::Horizontal)
|
|
||||||
.constraints([Constraint::Percentage(50), Constraint::Percentage(50)])
|
|
||||||
.split(bottom)
|
|
||||||
.as_array()
|
|
||||||
.cloned()
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
frame.render_widget(self, frame.area());
|
|
||||||
network_info(frame, footer_left);
|
|
||||||
peers(&self.peers, frame, footer_right);
|
|
||||||
|
|
||||||
// match self.screen {
|
|
||||||
// _ => {}
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn peers(peers: &Peers, frame: &mut Frame, area: Rect) {
|
|
||||||
let mut items = Vec::with_capacity(peers.len());
|
|
||||||
for (k, v) in peers.iter() {
|
|
||||||
let item = format!("{:?}: {} ({})", k, v.0, v.1);
|
|
||||||
let s = Line::from(item.yellow());
|
|
||||||
|
|
||||||
let item = ListItem::new(s);
|
|
||||||
items.push(item);
|
|
||||||
}
|
|
||||||
let title = Line::from(" Peers ".bold()).centered();
|
|
||||||
let block = Block::default().title(title).borders(Borders::all());
|
|
||||||
let list = List::new(items).block(block);
|
|
||||||
frame.render_widget(list, area);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn network_info(frame: &mut Frame, area: Rect) {
|
|
||||||
let udp: Line = format!("UDP socket: {:?}", joecalsend::LISTENING_SOCKET_ADDR)
|
|
||||||
.yellow()
|
|
||||||
.into();
|
|
||||||
let multicast: Line = format!(
|
|
||||||
"Multicast address: {:?}:{}",
|
|
||||||
joecalsend::MULTICAST_IP,
|
|
||||||
joecalsend::DEFAULT_PORT
|
|
||||||
)
|
|
||||||
.yellow()
|
|
||||||
.into();
|
|
||||||
let http: Line = format!("HTTP address: {:?}", joecalsend::LISTENING_SOCKET_ADDR)
|
|
||||||
.yellow()
|
|
||||||
.into();
|
|
||||||
let items = [
|
|
||||||
ListItem::new(udp),
|
|
||||||
ListItem::new(multicast),
|
|
||||||
ListItem::new(http),
|
|
||||||
];
|
|
||||||
let title = Line::from(" Listeners ".bold()).centered();
|
|
||||||
let block = Block::default().title(title).borders(Borders::all());
|
|
||||||
let list = List::new(items).block(block);
|
|
||||||
frame.render_widget(list, area);
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue