Skip to main content

ui_storybook/stories/
save_panel.rs

1//! Save-panel stories (M-SAVE.GATE) — the post-record Save panel in
2//! its three visible states (choosing / exporting / saved).
3
4use leptos::prelude::*;
5
6use crate::components::recorder::SavePanel;
7use crate::fixtures::recorder::{
8    sample_save_panel_choosing, sample_save_panel_exporting, sample_save_panel_saved,
9};
10
11use super::{Story, StoryViewport, render};
12
13/// All Save-panel stories.
14#[must_use]
15pub fn stories() -> Vec<Story> {
16    vec![
17        Story {
18            id: "save-panel-choosing",
19            category: "Recorder",
20            title: "Save panel — choosing (folder + format)",
21            viewport: StoryViewport::Fixed {
22                width: 460,
23                height: 220,
24            },
25            render: render_choosing,
26        },
27        Story {
28            id: "save-panel-exporting",
29            category: "Recorder",
30            title: "Save panel — exporting (controls busy)",
31            viewport: StoryViewport::Fixed {
32                width: 460,
33                height: 220,
34            },
35            render: render_exporting,
36        },
37        Story {
38            id: "save-panel-saved",
39            category: "Recorder",
40            title: "Save panel — saved (reveal / done)",
41            viewport: StoryViewport::Fixed {
42                width: 460,
43                height: 160,
44            },
45            render: render_saved,
46        },
47    ]
48}
49
50fn render_choosing() -> String {
51    render(view! {
52        <SavePanel view=sample_save_panel_choosing() />
53    })
54}
55
56fn render_exporting() -> String {
57    render(view! {
58        <SavePanel view=sample_save_panel_exporting() />
59    })
60}
61
62fn render_saved() -> String {
63    render(view! {
64        <SavePanel view=sample_save_panel_saved() />
65    })
66}