minor re-org

This commit is contained in:
Joe Ardent 2025-07-08 23:09:05 -07:00
parent a0deb3d53e
commit 98a3a74490

View file

@ -8,6 +8,70 @@ use ratatui::{
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
// available rect `r`
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
}
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);
}