mod bus; mod props; mod sub; use self::props::Props; use crate::{prelude::*, render}; pub use bus::{Bus, Request}; pub use sub::AlertSubscriber; use yew::prelude::*; pub struct Alert { link: ComponentLink, props: Props, } impl Component for Alert { type Properties = Props; type Message = (); fn create(props: Self::Properties, link: ComponentLink) -> Self { Self { link, props } } fn update(&mut self, _: Self::Message) -> ShouldRender { self.props.on_close.emit(()); true } fn change(&mut self, props: Self::Properties) -> ShouldRender { render_if_ne(&mut self.props, props) } fn view(&self) -> Html { let html = html! {
{ self.props.children.clone() }
}; render::render_with_prefix( &self.props, vec!["alert", &self.props.color.with_prefix("alert")], html, ) } }