use ratatui::widgets::{Block, Borders, Paragraph};
use ratatui::{Frame, layout::Rect, style::Style};
use super::{GRAY, GREEN};
use crate::{InputMode, State};
pub fn draw_input(title_area: Rect, state: &mut State, f: &mut Frame, input: Rect) {
let width = title_area.width - 3;
let scroll = state.input.visual_scroll(width as usize);
let prompt_len = state.stream_output_prompt.len();
let txt_input =
Paragraph::new(format!("{}{}", state.stream_output_prompt, state.input.value()))
.style(match state.input_mode {
InputMode::Normal => Style::default(),
InputMode::Editing => Style::default().fg(GREEN),
})
.scroll((0, scroll as u16))
.block(Block::default().borders(Borders::ALL).border_style(match state.input_mode {
InputMode::Normal => Style::new().fg(GRAY),
InputMode::Editing => Style::new().fg(GREEN),
}));
f.render_widget(txt_input, input);
match state.input_mode {
InputMode::Normal =>
{}
InputMode::Editing => {
f.set_cursor_position((
input.x
+ ((state.input.visual_cursor()).max(scroll) - scroll) as u16
+ 1
+ prompt_len as u16,
input.y + 1,
));
}
}
}