showcase/pages/
surfaces.rs1use material::widget::page;
2use material_ui_rs as material;
3
4use super::super::{INVENTORY_ROWS, InventoryRow, Message};
5
6pub(super) fn view() -> material::Element<'static, Message> {
7 page::sections([
8 page::section("Cards", cards()).into(),
9 page::section("Lists", lists()).into(),
10 page::section("Data table", data_table()).into(),
11 ])
12 .into()
13}
14
15fn cards() -> material::Element<'static, Message> {
16 page::compact_stack([
17 page::card(material::widget::card::elevated, "Elevated", "Level 1").into(),
18 page::card(material::widget::card::filled, "Filled", "Container").into(),
19 page::card(material::widget::card::outlined, "Outlined", "1px stroke").into(),
20 ])
21 .into()
22}
23
24fn lists() -> material::Element<'static, Message> {
25 material::widget::list::group([
26 material::widget::list::one_line_icon("info", "One-line list item").into(),
27 material::widget::list::two_line_with_trailing("Messages", "Supporting text", "24").into(),
28 material::widget::list::three_line("Three-line item", "Supporting text", "Second line")
29 .into(),
30 ])
31 .into()
32}
33
34fn data_table() -> material::Element<'static, Message> {
35 material::widget::data_table::standard(
36 [
37 material::widget::data_table::weighted_column(2, "Component", |row: InventoryRow| {
38 row.component
39 }),
40 material::widget::data_table::column("State", |row: InventoryRow| row.status),
41 material::widget::data_table::compact_numeric_column("Count", |row: InventoryRow| {
42 row.count.to_string()
43 }),
44 ],
45 INVENTORY_ROWS,
46 )
47 .into()
48}