Skip to main content

endpoint_validator/tui/widgets/
json_viewer.rs

1use ratatui::{
2    style::{Color, Style},
3    text::{Span, Spans},
4    widgets::{Block, Borders, Paragraph},
5};
6
7pub fn create_json_viewer<'a>(json_data: &'a Option<String>, is_focused: bool) -> Paragraph<'a> {
8    let json_display = json_data.as_deref().unwrap_or("");
9
10    let title = Spans::from(vec![Span::styled(
11        " Response ",
12        Style::default().fg(if is_focused {
13            Color::Yellow
14        } else {
15            Color::Gray
16        }),
17    )]);
18
19    Paragraph::new(json_display)
20        .style(Style::default().fg(Color::Gray))
21        .block(
22            Block::default()
23                .borders(Borders::ALL)
24                .border_style(Style::default().fg(if is_focused {
25                    Color::Yellow
26                } else {
27                    Color::Gray
28                }))
29                .title(title),
30        )
31}