changxi 0.3.0

TUI EPUB Reader
use crate::app::App;
use crate::ui::{Component, centered_rect};
use ratatui::{
    Frame,
    layout::Rect,
    widgets::{Block, Borders, Paragraph},
};
use ratatui_image::{StatefulImage, picker::Picker};

pub struct CoverView;

impl Component for CoverView {
    fn render(&self, f: &mut Frame, area: Rect, app: &mut App, _picker: &mut Picker) {
        if let Some(ref mut protocol) = app.cover_protocol {
            let area = centered_rect(80, 100, area);
            f.render_stateful_widget(StatefulImage::default(), area, protocol);
        } else {
            f.render_widget(
                Paragraph::new("No cover image available")
                    .block(Block::default().borders(Borders::ALL)),
                area,
            );
        }
    }
}