Skip to main content

ui_storybook/stories/
tray_record_popover.rs

1//! Tray-record-popover composition stories (M-UI.12 / AUT-132).
2
3use 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/// All tray-record-popover stories.
16#[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}