fn view_menu(disable: bool) -> Node<Msg> {
    log::debug!("menu disabled: {}", disable);
    select![
        attrs! { At::Id => "fractal-type" },
        // the presence of `disabled`, not its value, determines if an element is disabled.
        IF!(disable => attrs!{ At::Disabled => disable }),
        SelectedFractal::by_category()
            .iter()
            .map(|(category, fractals)| {
                optgroup![
                    attrs! {At::Label => category.display_name()},
                    fractals.iter().map(|fractal| {
                        option![
                            attrs! {At::Value => <&'static str>::from(fractal)},
                            fractal.name()
                        ]
                    })
                ]
            }),
        input_ev(Ev::Input, Msg::FractalSelected),
    ]
}
/// Renders/re-renders the menu for selecting which fractal animation to configure and run next.
///
/// The menu can be disabled -- while an animation is running, it causes seed to re-compute the
/// view (the animation uses the seed event loop to schedule the next animation frame after the
/// next render), which causes the dropdown menu beecome unusable.
Renders/re-renders the menu for selecting which fractal animation to configure and run next.
The menu can be disabled -- while an animation is running, it causes seed to re-compute the
view (the animation uses the seed event loop to schedule the next animation frame after the
next render), which causes the dropdown menu beecome unusable.
Renders / re - renders the menu for selecting which fractal animation to configure and run next . The menu can be disabled -- while an animation is running it causes seed to re - compute the view ( the animation uses the seed event loop to schedule the next animation frame after the next render ) which causes the dropdown menu beecome unusable .
fn view_menu(disable: bool) -> Node<Msg> {
    log::debug!("menu disabled: {}", disable);
    select![
        attrs! { At::Id => "fractal-type" },
        // the presence of `disabled`, not its value, determines if an element is disabled.
        IF!(disable => attrs!{ At::Disabled => disable }),
        SelectedFractal::by_category()
            .iter()
            .map(|(category, fractals)| {
                optgroup![
                    attrs! {At::Label => category.display_name()},
                    fractals.iter().map(|fractal| {
                        option![
                            attrs! {At::Value => <&'static str>::from(fractal)},
                            fractal.name()
                        ]
                    })
                ]
            }),
        input_ev(Ev::Input, Msg::FractalSelected),
    ]
}
fn view_menu ( disable : bool ) -> Node < Msg > { log :: debug ! ( " " disable ) ; select ! [ attrs { At Id " " } // the presence of `disabled`, not its value, determines if an element is disabled. IF ( disable attrs { At Disabled disable } ) SelectedFractal by_category ( ) iter ( ) map ( ( category fractals ) { optgroup [ attrs { At Label category display_name ( ) } fractals iter ( ) map ( fractal { option [ attrs { At Value ' static str from ( fractal ) } fractal name ( ) ] } ) ] } ) input_ev ( Ev Input Msg FractalSelected ) ] }
Renders/re-renders the menu for selecting which fractal animation to configure and run next.
Renders / re - renders the menu for selecting which fractal animation to configure and run next .
disable
bool