Components / TreeView
TreeView
Items inside items: opens, selects, checks and filters.
Example
The component itself, running in WebAssembly, beside its code in a playground. Try it.
Code
use ravenrs::prelude::*;
fn tree_view() -> impl View {
let selected = State::new(Some(String::from("invoices")));
let opened = State::new(std::collections::BTreeSet::from([String::from("sales")]));
TreeView::new(vec![
TreeNode::new("sales", "Sales")
.icon(IconName::Folder)
.child(TreeNode::new("invoices", "Invoices").icon(IconName::FileText))
.child(TreeNode::new("quotes", "Quotes").icon(IconName::FileText)),
TreeNode::new("stock", "Stock")
.icon(IconName::Folder)
.child(TreeNode::new("items", "Items").icon(IconName::FileText)),
TreeNode::new("reports", "Reports").icon(IconName::FileText),
])
.selected(selected.binding())
.expanded(opened.binding())
}