use super::{PICKER_MODAL, draw_modal_panel_with_hotkeys};
use crate::tui::state::MissionControlState;
use ratatui::{
Frame,
layout::Rect,
widgets::{Paragraph, Wrap},
};
pub(super) fn draw_bash_approval(frame: &mut Frame<'_>, area: Rect, state: &MissionControlState) {
let Some(approval) = &state.modals.bash_approval else {
return;
};
let Some(text_area) = draw_modal_panel_with_hotkeys(
frame,
area,
"Bash Protection",
PICKER_MODAL,
state.theme,
"[Enter/a] allow",
Some("[Esc/d] deny"),
) else {
return;
};
let request = &approval.request;
let command = crate::output::sanitize_display_text(&request.command);
let probabilities = request
.probabilities
.iter()
.map(|(level, probability)| format!("{level}: {probability:.2}"))
.collect::<Vec<_>>()
.join(", ");
let text = format!(
"Jev flagged this command.\n\nRisk: {:.2} Confidence: {:.2}\nProbabilities: {probabilities}\n\n{command}",
request.score, request.confidence,
);
frame.render_widget(
Paragraph::new(text)
.style(state.theme.pane())
.wrap(Wrap { trim: false }),
text_area,
);
}