use leptos::prelude::*;
#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub struct DataTableRowGrouping {
pub model: Vec<String>,
pub grouping_column: Option<String>,
}
impl DataTableRowGrouping {
pub fn new(model: Vec<String>) -> Self {
Self {
model,
grouping_column: None,
}
}
pub fn with_grouping_column(mut self, field: impl Into<String>) -> Self {
self.grouping_column = Some(field.into());
self
}
pub fn is_active(&self) -> bool {
!self.model.is_empty()
}
pub fn grouping_field(&self) -> Option<&str> {
self.grouping_column
.as_deref()
.or_else(|| self.model.first().map(String::as_str))
}
}
pub type RowGroupingSignal = Signal<DataTableRowGrouping>;