Tooltip

Struct Tooltip 

Source
pub struct Tooltip { /* private fields */ }
Expand description

§Tooltip component

Tooltip which is automatically shown when an element is focused or hovered.

Bootstrap’s tooltips depend on Popper, which assumes complete control of the DOM. Yew also assumes complete control of the DOM, so this can lead to unexpected behaviour whenever it reuses DOM components – so you can’t just use data-bs-toggle="tooltip".

This component is similar to react-bootstrap’s Tooltip component – it wires up Popper in a way that works nicely with Yew.

There are some similarities and differences between this component and Bootstrap’s in-built implementation:

  • There’s no need to use bootstrap.bundle.min.js or popper.min.js. This component uses popper-rs, which comes with Popper.

  • You can’t trigger or describe tooltips with data-bs-* attributes.

  • The <Tooltip>’s content is set with the children property, which supports arbitrary HTML.

    It doesn’t support the sanitize, sanitizeFn or title attributes.

  • Like Bootstrap, <Tooltip> is triggered by input focus and mouse hover by default.

    These triggers can be individually disabled, and you can control display manually instead.

    <Tooltip> does not support the click trigger – use input focus instead. This makes it possible to trigger tooltips when there is no pointing device available or it cannot be used.

  • Like Bootstrap, tooltips exist in a shadow DOM (portal) outside of the normal page hierarchy.

    Unlike Bootstrap, the <Tooltip> is always present in the DOM, even when the tooltip is not displayed.

    A <Tooltip> needs to remain part of the DOM if it could be shown in a component. Use the show and disabled properties to control its display.

  • When using a target which could be disabled and triggering on focus and/or on hover, you can prevent the tooltip from being displayed by setting the disabled property on the on the <Tooltip> as well. Otherwise, the target won’t fire an event to hide the tooltip when it loses focus or isn’t hovered.

    If you only ever trigger tooltips manually, then there’s no need to sync the disabled state.

  • Like Bootstrap, if you want the tooltip to be displayed on focus or on hover on a disabled target, you’ll need to use a wrapper element.

§Examples

Button with a tooltip, shown automatically on focus or hover:

use yew::prelude::*;
use yew_bootstrap::component::{Button, Tooltip};
use yew_bootstrap::util::Color;

fn test() -> Html {
    let btn_ref = NodeRef::default();
    html! {
        <>
            <Button style={Color::Primary} node_ref={btn_ref.clone()}>
                {"Button with tooltip"}
            </Button>
            <Tooltip target={btn_ref}>
                {"Tooltip for button."}
            </Tooltip>
        </>
    }
}

Trait Implementations§

Source§

impl BaseComponent for Tooltip
where Self: 'static,

Source§

type Message = ()

The Component’s Message.
Source§

type Properties = TooltipProps

The Component’s Properties.
Source§

fn create(ctx: &Context<Self>) -> Self

Creates a component.
Source§

fn update(&mut self, _ctx: &Context<Self>, _msg: Self::Message) -> bool

Updates component’s internal state.
Source§

fn changed( &mut self, _ctx: &Context<Self>, _old_props: &Self::Properties, ) -> bool

React to changes of component properties.
Source§

fn view(&self, ctx: &Context<Self>) -> HtmlResult

Returns a component layout to be rendered.
Source§

fn rendered(&mut self, _ctx: &Context<Self>, _first_render: bool)

Notified after a layout is rendered.
Source§

fn destroy(&mut self, _ctx: &Context<Self>)

Notified before a component is destroyed.
Source§

fn prepare_state(&self) -> Option<String>

Prepares the server-side state.
Source§

impl Debug for Tooltip

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FunctionProvider for Tooltip

Source§

type Properties = TooltipProps

Properties for the Function Component.
Source§

fn run(ctx: &mut HookContext, props: &Self::Properties) -> HtmlResult

Render the component. This function returns the Html to be rendered for the component. Read more

Auto Trait Implementations§

§

impl !Freeze for Tooltip

§

impl !RefUnwindSafe for Tooltip

§

impl !Send for Tooltip

§

impl !Sync for Tooltip

§

impl Unpin for Tooltip

§

impl !UnwindSafe for Tooltip

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoPropValue<Option<T>> for T

Source§

fn into_prop_value(self) -> Option<T>

Convert self to a value of a Properties struct.
Source§

impl<T> IntoPropValue<T> for T

Source§

fn into_prop_value(self) -> T

Convert self to a value of a Properties struct.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<Token, Builder, How> AllPropsFor<Builder, How> for Token
where Builder: Buildable<Token>, <Builder as Buildable<Token>>::WrappedToken: HasAllProps<<Builder as Buildable<Token>>::Output, How>,

Source§

impl<T> HasAllProps<(), T> for T