Skip to main content

tix/ui/
board.rs

1use ratatui::Frame;
2use ratatui::layout::{Constraint, Direction, Layout, Position, Rect};
3use ratatui::style::{Color, Modifier, Style};
4use ratatui::text::{Line, Span};
5use ratatui::widgets::{Block, Borders, List, ListItem, ListState, Paragraph};
6use std::collections::BTreeMap;
7use std::collections::HashMap;
8use std::collections::HashSet;
9
10use crate::config::BoardConfiguration;
11use crate::model::{Issue, Priority};
12use crate::search::{Corpus, StructuredFilter};
13use crate::storage::Store;
14
15use super::widgets;
16
17mod filter;
18mod hit;
19mod render;
20mod state;
21pub(crate) use filter::*;
22pub use render::*;
23pub use state::*;
24pub(crate) fn sparse_card_order(board_config: &BoardConfiguration, cards: &[Card]) -> Vec<String> {
25    let mut baseline = cards.to_vec();
26    sort_by_default_order(board_config, &mut baseline);
27    baseline
28        .iter()
29        .zip(cards.iter())
30        .filter(|(baseline_card, current_card)| baseline_card.filename != current_card.filename)
31        .map(|(_, current_card)| current_card.filename.clone())
32        .collect()
33}
34
35#[cfg(test)]
36mod tests;