nes_yew/components/
progress.rs1use 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}