nes_yew/components/
progress.rs

1use std::borrow::Cow;
2use yew::prelude::*;
3
4#[derive(Properties, PartialEq)]
5pub struct ProgressProps {
6    pub value: u32,
7    pub max: u32,
8    #[prop_or_default]
9    pub primary: bool,
10    #[prop_or_default]
11    pub success: bool,
12    #[prop_or_default]
13    pub warning: bool,
14    #[prop_or_default]
15    pub error: bool,
16    #[prop_or_default]
17    pub pattern: bool,
18    pub class: Option<Cow<'static, str>>,
19    pub style: Option<AttrValue>,
20}
21
22#[function_component(Progress)]
23pub fn progress(
24    ProgressProps {
25        value,
26        max,
27        primary,
28        success,
29        warning,
30        error,
31        pattern,
32        class,
33        style,
34    }: &ProgressProps,
35) -> Html {
36    html! {
37        <progress
38            value={AttrValue::from(format!("{value}"))}
39            max={AttrValue::from(format!("{max}"))}
40            class={classes!(
41                class,
42                "nes-progress",
43                if *primary { Some("is-primary") } else { None },
44                if *success { Some("is-success") } else { None },
45                if *warning { Some("is-warning") } else { None },
46                if *error { Some("is-error") } else { None },
47                if *pattern { Some("is-pattern") } else { None },
48            )}
49            style={style.clone()}
50        />
51    }
52}