use ratatui::{
text::Line,
widgets::{Block, Borders},
};
pub fn titled_block<'a>(title: Line<'a>, borders: Borders) -> Block<'a> {
Block::default().borders(borders).title(title)
}
pub fn bordered_block<'a>(title: Line<'a>) -> Block<'a> {
titled_block(title, Borders::ALL)
}
pub fn bordered_block_with_notification<'a>(
title: Line<'a>,
notification: Option<Line<'a>>,
) -> Block<'a> {
let mut block = Block::default().borders(Borders::ALL).title(title);
if let Some(notif) = notification {
block = block.title(notif.right_aligned());
}
block
}
pub fn side_borders_block() -> Block<'static> {
Block::default().borders(Borders::LEFT | Borders::RIGHT)
}
pub fn header_block<'a>(title: Line<'a>) -> Block<'a> {
titled_block(title, Borders::TOP | Borders::LEFT | Borders::RIGHT)
}
#[cfg(test)]
mod tests {
use super::*;
use ratatui::text::Line;
#[test]
fn test_bordered_block() {
let title = Line::from("Test");
let _block = bordered_block(title);
}
#[test]
fn test_side_borders_block() {
let _block = side_borders_block();
}
#[test]
fn test_header_block() {
let title = Line::from("Header");
let _block = header_block(title);
}
}