use super::super::render_scroll_view_persistent_state_with_theme;
use super::{SYSTEM_PROMPT_MODAL, draw_modal_panel_with_hotkeys, modal_text_area};
use crate::tui::state::MissionControlState;
use ratatui::{
Frame,
layout::Rect,
widgets::{Paragraph, Wrap},
};
pub(crate) fn rewind_modal_text_area(area: Rect) -> Option<Rect> {
modal_text_area(area, "Rewind", SYSTEM_PROMPT_MODAL)
}
pub(in crate::tui::render) fn draw_rewind_modal(
frame: &mut Frame<'_>,
area: Rect,
state: &MissionControlState,
) {
let Some(modal) = &state.modals.rewind_modal else {
return;
};
let theme = state.theme;
let content = modal.body_text();
let hotkeys = modal.hotkeys();
let Some(text_area) = draw_modal_panel_with_hotkeys(
frame,
area,
"Rewind",
SYSTEM_PROMPT_MODAL,
theme,
&hotkeys,
Some("[Esc] close"),
) else {
return;
};
let wrap_width = super::super::scroll_view_content_width(text_area).max(1);
render_scroll_view_persistent_state_with_theme(
frame,
text_area,
super::super::usize_to_u16_saturating(crate::tui::transcript::ratatui_wrapped_visual_rows(
&content, wrap_width,
)),
Paragraph::new(content)
.style(theme.pane())
.wrap(Wrap { trim: false }),
&state.scroll_views.rewind_modal,
theme,
);
}