You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
679 B
26 lines
679 B
import PropTypes from 'prop-types';
|
|
import React from 'react';
|
|
import scrollPositions from 'Store/scrollPositions';
|
|
|
|
function withScrollPosition(WrappedComponent, scrollPositionKey) {
|
|
function ScrollPosition(props) {
|
|
const { history } = props;
|
|
|
|
const initialScrollTop =
|
|
history.action === 'POP' ||
|
|
(history.location.state && history.location.state.restoreScrollPosition)
|
|
? scrollPositions[scrollPositionKey]
|
|
: 0;
|
|
|
|
return <WrappedComponent {...props} initialScrollTop={initialScrollTop} />;
|
|
}
|
|
|
|
ScrollPosition.propTypes = {
|
|
history: PropTypes.object.isRequired,
|
|
};
|
|
|
|
return ScrollPosition;
|
|
}
|
|
|
|
export default withScrollPosition;
|