synd-term 0.3.2

terminal feed viewer
Documentation
use ratatui::{
    buffer::Buffer,
    layout::Rect,
    widgets::{ScrollbarOrientation, ScrollbarState, StatefulWidget},
};

use crate::ui::Context;

pub(in crate::ui) struct Scrollbar {
    pub(in crate::ui) content_length: usize,
    pub(in crate::ui) position: usize,
}

impl Scrollbar {
    pub(in crate::ui) fn render(self, area: Rect, buf: &mut Buffer, cx: &Context<'_>) {
        let mut state = ScrollbarState::default()
            .content_length(self.content_length)
            .position(self.position);

        ratatui::widgets::Scrollbar::default()
            .orientation(ScrollbarOrientation::VerticalRight)
            .begin_symbol(None)
            .end_symbol(None)
            .track_symbol(Some(" "))
            .thumb_symbol("")
            .style(cx.theme.base)
            .render(area, buf, &mut state);
    }
}