ui_storybook/stories/
recorder_footer.rs1use leptos::prelude::*;
4
5use crate::components::recorder::{RecordingControlsFooter, StartRecordingState};
6use crate::fixtures::recorder::{sample_recording_controls, sample_recording_controls_compact};
7
8use super::{Story, StoryViewport, render};
9
10#[must_use]
12pub fn stories() -> Vec<Story> {
13 vec![
14 Story {
15 id: "recording-footer-ready",
16 category: "Recorder",
17 title: "Recording footer — ready",
18 viewport: StoryViewport::Fixed {
19 width: 460,
20 height: 96,
21 },
22 render: render_ready,
23 },
24 Story {
25 id: "recording-footer-disabled",
26 category: "Recorder",
27 title: "Recording footer — disabled",
28 viewport: StoryViewport::Fixed {
29 width: 460,
30 height: 96,
31 },
32 render: render_disabled,
33 },
34 Story {
35 id: "recording-footer-loading",
36 category: "Recorder",
37 title: "Recording footer — loading",
38 viewport: StoryViewport::Fixed {
39 width: 460,
40 height: 96,
41 },
42 render: render_loading,
43 },
44 Story {
45 id: "recording-footer-permission-blocked",
46 category: "Recorder",
47 title: "Recording footer — permission blocked",
48 viewport: StoryViewport::Fixed {
49 width: 460,
50 height: 96,
51 },
52 render: render_permission_blocked,
53 },
54 Story {
55 id: "recording-footer-compact",
56 category: "Recorder",
57 title: "Recording footer — compact (no zoom, no countdown)",
58 viewport: StoryViewport::Fixed {
59 width: 460,
60 height: 96,
61 },
62 render: render_compact,
63 },
64 ]
65}
66
67fn render_ready() -> String {
68 render(view! {
69 <RecordingControlsFooter view=sample_recording_controls(StartRecordingState::Ready) />
70 })
71}
72
73fn render_disabled() -> String {
74 render(view! {
75 <RecordingControlsFooter view=sample_recording_controls(StartRecordingState::Disabled) />
76 })
77}
78
79fn render_loading() -> String {
80 render(view! {
81 <RecordingControlsFooter view=sample_recording_controls(StartRecordingState::Loading) />
82 })
83}
84
85fn render_permission_blocked() -> String {
86 render(view! {
87 <RecordingControlsFooter view=sample_recording_controls(StartRecordingState::PermissionBlocked) />
88 })
89}
90
91fn render_compact() -> String {
92 render(view! {
93 <RecordingControlsFooter view=sample_recording_controls_compact() />
94 })
95}