Debounced React high order component to flag when it's container is inside the viewport.
Let's build an example react component:
const Header = ({ style }) => (<h1 style={style}>Header</h1>)
And decorate:
import WithinViewport from 'react-within-viewport'
const Decorated = WithinViewport()(Header)
Now when you use <Decorated />
it will pass the boolean property inViewport
to Header
.
The passed prop is transformed by a function. You can use it to, for example, changing the prop name:
const Decorated = WithinViewport(
{ transform: ({ inViewport }) => ({ insideViewport: inViewport }) }
)(Header)
The property passed to the Header
would change to insideViewport
.
The transformation function also receives: containerWidth
, containerHeight
,
containerTopOffset
, containerLeftOffset
, windowWidth
, windowHeight
and ready
.
Ready is true when all positioning data are loaded.
You can also change the wrapper div style to meet your needs like:
const Decorated = WithinViewport(
{ containerStyle: { display: 'inline-block' } }
)(Header)
First of all, thank you for wanting to help!
- Fork it.
- Create a feature branch -
git checkout -b more_magic
- Add tests and make your changes
- Check if tests are ok -
npm test
- Commit changes -
git commit -am "Added more magic"
- Push to Github -
git push origin more_magic
- Send a pull request! ❤️ 💖 ❤️