yew-component-size

Crates.ioyew-component-size
lib.rsyew-component-size
version0.1.0
sourcesrc
created_at2020-12-12 00:37:21.492157
updated_at2020-12-12 00:37:21.492157
descriptionA Yew component that emits events when the parent component changes width/height.
homepage
repositoryhttps://github.com/AircastDev/yew-component-size
max_upload_size
id322032
size23,687
James Birtles (jamesbirtles)

documentation

README

yew-component-size

Crates.io Crates.io

A Yew component that emits events when the parent component changes width/height. Only compatible with Yew using web_sys.

Example:

let onsize = self.link.callback(|size: ComponentSize| {
    // Access to `size.width` and `size.height`
});

html! {
    // Parent that you're tracking the size of must be `position: relative`
    <div style="position: relative;">
        // ...
        <ComponentSizeObserver onsize=onsize />
    </div>
}

How it works

This uses a trick borrowed from Svelte where we use an iframe that is positioned absolutely to fill it's parent element, and then we listen to the resize event of iframe's window.

Note: This incurs a small cost and so should not be used on a large number of elements at the same time.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 1

cargo fmt