use super::types::{FilterState, FilterStateInfo, Item};
use super::Model;
use bubbletea_rs::Cmd;
impl<I: Item + Send + Sync + 'static> Model<I> {
pub fn is_filtering(&self) -> bool {
matches!(
self.filter_state,
FilterState::Filtering | FilterState::FilterApplied
)
}
pub fn clear_filter(&mut self) -> Option<Cmd> {
self.filter_input.set_value("");
self.filter_state = FilterState::Unfiltered;
self.filtered_items.clear();
self.cursor = 0;
self.update_pagination();
None
}
pub fn filter_state_info(&self) -> FilterStateInfo {
FilterStateInfo {
state: self.filter_state.clone(),
query: self.filter_input.value(),
match_count: self.len(),
is_filtering: self.is_filtering(),
is_clearing: false, }
}
}