ratatui_toolkit/widgets/markdown_widget/extensions/scrollbar/traits/
widget.rs

1//! Widget trait implementation for CustomScrollbar.
2
3use ratatui::{buffer::Buffer, layout::Rect, widgets::Widget};
4
5use crate::widgets::markdown_widget::extensions::scrollbar::CustomScrollbar;
6
7impl<'a> Widget for CustomScrollbar<'a> {
8    fn render(self, area: Rect, buf: &mut Buffer) {
9        if area.width == 0 || area.height == 0 {
10            return;
11        }
12
13        // Don't render if content fits in viewport
14        if self.scroll_state.total_lines <= self.scroll_state.viewport_height {
15            return;
16        }
17
18        // Render track (background)
19        self.render_track(area, buf);
20
21        // Render thumb (scrollable indicator)
22        self.render_thumb(area, buf);
23
24        // Render percentage if enabled
25        if self.show_percentage {
26            self.render_percentage(area, buf);
27        }
28    }
29}