Waypoint Component - Enterprise-CMCS/eAPD GitHub Wiki
<ConnectedWaypoint /> updates store.router.location.hash (the URL
#fragment) with the id of the HTML element, when it is 90% of the height from
the bottom of the browser window.
The history API methods provided by connected-react-router are: push,
replace, go, goBack, goForward. It is important to use replace in this
instance, since we are updating the URL to reflect navigating to a section of
a page, and not navigating to another page.
import React, { Fragment } from 'react';
import { connect } from 'react-redux';
import { Waypoint } from 'react-waypoint';
import { replace as actualReplace } from 'connected-react-router';
const ConnectedWaypoint = ({ children, id, location, replace }) => (
<Fragment>
<Waypoint
bottomOffset="90%"
fireOnRapidScroll={false}
onEnter={() => replace({ ...location, hash: id })} />
{children}
</Fragment>
);
const mapStateToProps = ({ router }) => ({
location: router.location
});
const mapDispatchToProps = {
replace: actualReplace
};
export default connect(
mapStateToProps,
mapDispatchToProps
)(ConnectedWaypoint);Scrolling to the <Waypoint id="prev-activities-table" /> component triggers
the onEnter function, which updates store.rouer.location.hash.
