ui_storybook/stories/
tray_record_popover.rs1use leptos::prelude::*;
4
5use crate::components::recorder::{OpenRecorderPopoverKind, TrayRecordPopover};
6use crate::fixtures::recorder::{
7 sample_tray_record_popover, sample_tray_record_popover_start_disabled,
8};
9
10use super::{Story, StoryViewport, render};
11
12const POPOVER_WIDTH: u16 = 460;
13const POPOVER_HEIGHT: u16 = 760;
14
15#[must_use]
17pub fn stories() -> Vec<Story> {
18 vec![
19 story(
20 "tray-record-popover-default",
21 "Tray record popover — default",
22 render_default,
23 ),
24 story(
25 "tray-record-popover-workspace-open",
26 "Tray record popover — workspace menu open",
27 render_workspace_open,
28 ),
29 story(
30 "tray-record-popover-camera-open",
31 "Tray record popover — camera menu open",
32 render_camera_open,
33 ),
34 story(
35 "tray-record-popover-microphone-open",
36 "Tray record popover — microphone menu open",
37 render_microphone_open,
38 ),
39 story(
40 "tray-record-popover-system-audio-open",
41 "Tray record popover — system-audio expanded",
42 render_system_audio_open,
43 ),
44 story(
45 "tray-record-popover-on-screen-open",
46 "Tray record popover — on-screen options open",
47 render_on_screen_open,
48 ),
49 story(
50 "tray-record-popover-start-disabled",
51 "Tray record popover — Start recording disabled",
52 render_start_disabled,
53 ),
54 ]
55}
56
57fn story(id: &'static str, title: &'static str, render: fn() -> String) -> Story {
58 Story {
59 id,
60 category: "Recorder",
61 title,
62 viewport: StoryViewport::Fixed {
63 width: POPOVER_WIDTH,
64 height: POPOVER_HEIGHT,
65 },
66 render,
67 }
68}
69
70fn render_default() -> String {
71 render(view! {
72 <TrayRecordPopover view=sample_tray_record_popover(OpenRecorderPopoverKind::None) />
73 })
74}
75
76fn render_workspace_open() -> String {
77 render(view! {
78 <TrayRecordPopover view=sample_tray_record_popover(OpenRecorderPopoverKind::WorkspaceMenu) />
79 })
80}
81
82fn render_camera_open() -> String {
83 render(view! {
84 <TrayRecordPopover view=sample_tray_record_popover(OpenRecorderPopoverKind::CameraMenu) />
85 })
86}
87
88fn render_microphone_open() -> String {
89 render(view! {
90 <TrayRecordPopover view=sample_tray_record_popover(OpenRecorderPopoverKind::MicrophoneMenu) />
91 })
92}
93
94fn render_system_audio_open() -> String {
95 render(view! {
96 <TrayRecordPopover view=sample_tray_record_popover(OpenRecorderPopoverKind::SystemAudioMenu) />
97 })
98}
99
100fn render_on_screen_open() -> String {
101 render(view! {
102 <TrayRecordPopover view=sample_tray_record_popover(OpenRecorderPopoverKind::OnScreenOptions) />
103 })
104}
105
106fn render_start_disabled() -> String {
107 render(view! {
108 <TrayRecordPopover view=sample_tray_record_popover_start_disabled() />
109 })
110}