use crate::system;
use ant_node_manager::config::get_service_log_dir_path;
use ant_releases::ReleaseType;
use color_eyre::eyre::{self};
use ratatui::prelude::*;
pub fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect {
let popup_layout = Layout::vertical([
Constraint::Percentage((100 - percent_y) / 2),
Constraint::Percentage(percent_y),
Constraint::Percentage((100 - percent_y) / 2),
])
.split(r);
Layout::horizontal([
Constraint::Percentage((100 - percent_x) / 2),
Constraint::Percentage(percent_x),
Constraint::Percentage((100 - percent_x) / 2),
])
.split(popup_layout[1])[1]
}
pub fn centered_rect_fixed(x: u16, y: u16, r: Rect) -> Rect {
let popup_layout = Layout::vertical([
Constraint::Fill(1),
Constraint::Length(y),
Constraint::Fill(1),
])
.split(r);
Layout::horizontal([
Constraint::Fill(1),
Constraint::Length(x),
Constraint::Fill(1),
])
.split(popup_layout[1])[1]
}
pub fn open_logs(node_name: Option<String>) -> Result<(), eyre::Report> {
let service_path = get_service_log_dir_path(ReleaseType::NodeLaunchpad, None, None)?
.to_string_lossy()
.into_owned();
let folder = if let Some(node_name) = node_name {
format!("{service_path}/{node_name}")
} else {
service_path.to_string()
};
if let Err(e) = system::open_folder(&folder) {
error!("Failed to open folder: {}", e);
}
Ok(())
}