[−][src]Struct yew_styles::card::Card
Card
Features required
card
Example
use inflector::Inflector; use lipsum::lipsum; use wasm_bindgen::JsCast; use web_sys::Element; use yew::prelude::*; use yew::utils; use yew_prism::Prism; use yew_styles::card::Card; use yew_styles::styles::{Palette, Size, Style}; use yew_styles::layouts::{ container::{Container, Direction, Wrap}, item::{Item, ItemLayout}, }; pub enum Msg { Dragged(DragEvent), DraggedOver(DragEvent), Dropped(DragEvent), } pub struct CardExample { link: ComponentLink<Self>, } impl Component for CardPage { type Message = Msg; type Properties = (); fn create(_: Self::Properties, link: ComponentLink<Self>) -> Self { CardPage { link } } fn update(&mut self, msg: Self::Message) -> ShouldRender { match msg { Msg::Dragged(drag_event) => { let target_id = drag_event .target() .unwrap() .dyn_into::<Element>() .unwrap() .id(); drag_event .data_transfer() .unwrap() .set_data("application/card-component", &target_id) .unwrap(); drag_event.data_transfer().unwrap().set_drop_effect("move"); } Msg::DraggedOver(drag_event) => { drag_event.prevent_default(); drag_event.data_transfer().unwrap().set_drop_effect("move"); } Msg::Dropped(drag_event) => { drag_event.prevent_default(); let data = drag_event .data_transfer() .unwrap() .get_data("application/card-component") .unwrap(); let target_element = drag_event.target().unwrap().dyn_into::<Element>().unwrap(); target_element .append_child(&utils::document().get_element_by_id(&data).unwrap()) .unwrap(); } }; true } fn change(&mut self, _props: Self::Properties) -> ShouldRender { false } fn view(&self) -> Html { html! { <Container direction=Direction::Row wrap=Wrap::Wrap> <Item layouts=vec!(ItemLayout::ItL(4), ItemLayout::ItM(6), ItemLayout::ItXs(12))> <div ondrop=self.link.callback(|e| Msg::Dropped(e)) ondragover=self.link.callback(|e| Msg::DraggedOver(e)) class="box"> {"Box 1"} <Card card_style=Style::Light card_palette=Palette::Success card_size=Size::Medium draggable=true ondragstart_signal=self.link.callback(Msg::Dragged) id="card-draggable" header=Some(html!{<div class="image"> {"Image"} </div>}) body=Some(html!{ <div class="content">{lipsum(10)}</div> }) footer=Some(html!{ <div>{lipsum(3)}</div> }) /> </div> </Item> <Item layouts=vec!(ItemLayout::ItL(4), ItemLayout::ItM(6), ItemLayout::ItXs(12))> <div ondrop=self.link.callback(Msg::Dropped) ondragover=self.link.callback(Msg::DraggedOver) class="box"> {"Box 2"} </div> </Item> </Container> } } }
Trait Implementations
impl Component for Card
[src]
type Message = Msg
Messages are used to make Components dynamic and interactive. Simple Component's can declare their Message type to be ()
. Complex Component's commonly use an enum to declare multiple Message types. Read more
type Properties = Props
Properties are the inputs to a Component and should not mutated within a Component. They are passed to a Component using a JSX-style syntax. # use yew::{Html, Component, Properties, ComponentLink, html}; # struct Model; # #[derive(Clone, Properties)] # struct Props { # prop: String, # } # impl Component for Model { # type Message = ();type Properties = Props; # fn create(props: Self::Properties,link: ComponentLink<Self>) -> Self {unimplemented!()} # fn update(&mut self,msg: Self::Message) -> bool {unimplemented!()} # fn change(&mut self, _: Self::Properties) -> bool {unimplemented!()} # fn view(&self) -> Html { html! { <Model prop="value" /> } # }}
Read more
fn create(props: Self::Properties, link: ComponentLink<Self>) -> Self
[src]
fn update(&mut self, msg: Self::Message) -> ShouldRender
[src]
fn change(&mut self, props: Self::Properties) -> ShouldRender
[src]
fn view(&self) -> Html
[src]
fn rendered(&mut self, _first_render: bool)
[src]
fn destroy(&mut self)
[src]
Auto Trait Implementations
impl !RefUnwindSafe for Card
impl !Send for Card
impl !Sync for Card
impl Unpin for Card
impl !UnwindSafe for Card
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<COMP> Renderable for COMP where
COMP: Component,
[src]
COMP: Component,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,