ui_storybook/stories/
workspace_menu.rs1use leptos::prelude::*;
4
5use crate::components::shell::WorkspaceSwitcherMenu;
6use crate::fixtures::workspaces::{
7 sample_workspace_views, sample_workspace_views_long_names, sample_workspace_views_many,
8};
9
10use super::{Story, StoryViewport, render};
11
12#[must_use]
14pub fn stories() -> Vec<Story> {
15 vec![
16 Story {
17 id: "workspace-menu-default",
18 category: "Menus",
19 title: "Workspace switcher — default",
20 viewport: StoryViewport::Fixed {
21 width: 360,
22 height: 480,
23 },
24 render: render_default,
25 },
26 Story {
27 id: "workspace-menu-many",
28 category: "Menus",
29 title: "Workspace switcher — many workspaces",
30 viewport: StoryViewport::Fixed {
31 width: 360,
32 height: 600,
33 },
34 render: render_many,
35 },
36 Story {
37 id: "workspace-menu-long-names",
38 category: "Menus",
39 title: "Workspace switcher — long names truncate",
40 viewport: StoryViewport::Fixed {
41 width: 360,
42 height: 360,
43 },
44 render: render_long_names,
45 },
46 Story {
47 id: "workspace-menu-no-selection",
48 category: "Menus",
49 title: "Workspace switcher — no selection",
50 viewport: StoryViewport::Fixed {
51 width: 360,
52 height: 480,
53 },
54 render: render_no_selection,
55 },
56 ]
57}
58
59fn render_default() -> String {
60 render(view! {
61 <WorkspaceSwitcherMenu
62 workspaces=sample_workspace_views()
63 selected_id="ws-northwind"
64 />
65 })
66}
67
68fn render_many() -> String {
69 render(view! {
70 <WorkspaceSwitcherMenu
71 workspaces=sample_workspace_views_many()
72 selected_id="ws-northwind"
73 />
74 })
75}
76
77fn render_long_names() -> String {
78 render(view! {
79 <WorkspaceSwitcherMenu
80 workspaces=sample_workspace_views_long_names()
81 selected_id="ws-extremely-long"
82 />
83 })
84}
85
86fn render_no_selection() -> String {
87 render(view! {
88 <WorkspaceSwitcherMenu
89 workspaces=sample_workspace_views()
90 selected_id=""
91 />
92 })
93}