34 lines
653 B
Rust
34 lines
653 B
Rust
#[derive(Clone, Debug, Default)]
|
|
pub struct Tab {
|
|
href: String,
|
|
selected: bool,
|
|
}
|
|
|
|
impl Tab {
|
|
pub fn new(href: &str) -> Self {
|
|
Tab {
|
|
href: href.to_owned(),
|
|
selected: false,
|
|
}
|
|
}
|
|
|
|
pub fn selected(mut self, selected: bool) -> Self {
|
|
self.selected = selected;
|
|
self
|
|
}
|
|
|
|
pub(crate) fn href(&self) -> &str {
|
|
&self.href
|
|
}
|
|
|
|
pub(crate) fn class_string(&self) -> String {
|
|
let mut classes = vec!["toolkit-tab".to_owned()];
|
|
|
|
if self.selected {
|
|
classes.push("toolkit-tab__selected".to_owned());
|
|
}
|
|
|
|
classes.join(" ")
|
|
}
|
|
}
|