[−][src]Struct yew_styles::text::Text
Text
Features required
text
Example
use lipsum::lipsum; use wasm_bindgen::JsCast; use web_sys::Element; use yew::prelude::*; use yew::utils; use yew_styles::layouts::{ container::{Container, Direction, Wrap}, item::{Item, ItemLayout}, }; use yew_styles::styles::{Palette, Size, Style}; use yew_styles::text::{Text, TextType}; pub enum Msg { Dragged(DragEvent), DraggedOver(DragEvent), Dropped(DragEvent), } pub struct TextExample { link: ComponentLink<Self>, } impl Component for TextPage { type Message = Msg; type Properties = (); fn create(_: Self::Properties, link: ComponentLink<Self>) -> Self { TextPage { 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/text-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/text-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 wrap = Wrap::Wrap direction = Direction::Row> <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="tag-box" > {get_draggable_tags(self.link.clone())} </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="tag-box"> </div> </Item> </Container> } } } fn get_draggable_tags(link: ComponentLink<TextPage>) -> Html { let styles = vec![Style::Regular, Style::Outline, Style::Light]; let palette = vec![Palette::Success, Palette::Warning, Palette::Danger]; let mut index = 0; styles .into_iter() .map(|style| { palette .clone() .into_iter() .map(|item_palette| { let text_view = html! { <Text class_name="draggable-tag" id=format!("tag-{}", index) draggable=true ondragstart_signal=link.callback(Msg::Dragged) text_type=TextType::Tag text_size=Size::Medium text=lipsum(1).replace(".", "") text_style=style.clone() text_palette=item_palette interaction_effect= true /> }; index += 1; text_view }) .collect::<Html>() }) .collect::<Html>() }
Trait Implementations
impl Component for Text
[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 Text
impl !Send for Text
impl !Sync for Text
impl Unpin for Text
impl !UnwindSafe for Text
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>,