minor updates

This commit is contained in:
KaraZajac
2026-02-15 19:52:21 -05:00
parent daed5321d9
commit e5005c9083
9 changed files with 164 additions and 93 deletions
+45
View File
@@ -77,6 +77,10 @@ pub fn draw_ui(frame: &mut Frame, app: &App) {
render_settings_dropdown(frame, app);
}
if app.input_mode == InputMode::HackRfNotDetected {
render_hackrf_not_detected(frame, app);
}
if app.input_mode == InputMode::StartupImport {
render_startup_import_prompt(frame, app);
}
@@ -160,6 +164,7 @@ fn render_help_bar(frame: &mut Frame, area: Rect, app: &App) {
InputMode::SignalMenu => "Up/Down: Navigate | Enter: Select | Esc: Close",
InputMode::SettingsSelect => "Left/Right: Select | Tab: Cycle | Enter: Edit | Esc: Back",
InputMode::SettingsEdit => "Up/Down: Change Value | Enter: Apply | Esc: Cancel",
InputMode::HackRfNotDetected => "Press any key to continue",
InputMode::StartupImport => "y: Import | n: Skip",
InputMode::ExportFilename => {
match app.export_format {
@@ -191,6 +196,46 @@ fn centered_rect(width: u16, height: u16, area: Rect) -> Rect {
Rect::new(x, y, width.min(area.width), height.min(area.height))
}
/// Render the HackRF not detected warning (red box at startup)
fn render_hackrf_not_detected(frame: &mut Frame, _app: &App) {
let area = frame.area();
let popup = centered_rect(52, 7, area);
frame.render_widget(Clear, popup);
let red = Color::Red;
let text = vec![
Line::from(""),
Line::from(Span::styled(
" Your HackRF was not detected.",
Style::default().fg(red).add_modifier(Modifier::BOLD),
)),
Line::from(""),
Line::from(Span::styled(
" Connect a HackRF One and restart, or continue in demo mode.",
Style::default().fg(red),
)),
Line::from(""),
Line::from(Span::styled(
" Press any key to continue.",
Style::default().fg(Color::White),
)),
];
let block = Block::default()
.title(" Warning ")
.borders(Borders::ALL)
.border_style(Style::default().fg(red))
.style(Style::default().fg(red));
let paragraph = Paragraph::new(text)
.block(block)
.alignment(Alignment::Center)
.wrap(Wrap { trim: true });
frame.render_widget(paragraph, popup);
}
/// Render the startup import prompt overlay
fn render_startup_import_prompt(frame: &mut Frame, app: &App) {
let count = app.pending_fob_files.len();