magi-code 0.82.1

Repository-aware CLI coding agent for terminal work
Documentation
use super::super::render_text_scroll_view_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};

pub(crate) fn system_prompt_text_area(area: Rect) -> Option<Rect> {
    let text_area = modal_text_area(area, "Current System Prompt", SYSTEM_PROMPT_MODAL)?;
    (text_area.height > 0).then_some(text_area)
}

pub(in crate::tui::render) fn draw_system_prompt_modal(
    frame: &mut Frame<'_>,
    area: Rect,
    state: &MissionControlState,
) {
    let Some(modal_state) = &state.modals.system_prompt_modal else {
        return;
    };
    let theme = state.theme;
    let Some(text_area) = draw_modal_panel_with_hotkeys(
        frame,
        area,
        "Current System Prompt",
        SYSTEM_PROMPT_MODAL,
        theme,
        "[↑/↓] scroll • [PgUp/PgDn] page • [Home/End] • [q] close",
        Some("[Esc] close"),
    ) else {
        return;
    };
    if text_area.height == 0 {
        return;
    }
    render_text_scroll_view_with_theme(
        frame,
        text_area,
        &modal_state.content,
        &state.scroll_views.system_prompt,
        theme,
    );
}