2021-07-13 19:40:15 +09:00
|
|
|
import { ScrollContainer as OriginalScrollContainer } from 'react-router-scroll-4';
|
|
|
|
|
|
|
|
// ScrollContainer is used to automatically scroll to the top when pushing a
|
|
|
|
// new history state and remembering the scroll position when going back.
|
|
|
|
// There are a few things we need to do differently, though.
|
|
|
|
const defaultShouldUpdateScroll = (prevRouterProps, { location }) => {
|
2021-07-13 19:57:07 +09:00
|
|
|
// If the change is caused by opening a modal, do not scroll to top
|
|
|
|
return !(location.state?.mastodonModalKey && location.state?.mastodonModalKey !== prevRouterProps?.location?.state?.mastodonModalKey);
|
2021-07-13 20:49:40 +09:00
|
|
|
};
|
2021-07-13 19:40:15 +09:00
|
|
|
|
|
|
|
export default
|
|
|
|
class ScrollContainer extends OriginalScrollContainer {
|
2021-07-13 20:49:40 +09:00
|
|
|
|
2021-07-13 19:40:15 +09:00
|
|
|
static defaultProps = {
|
|
|
|
shouldUpdateScroll: defaultShouldUpdateScroll,
|
|
|
|
};
|
2021-07-13 20:49:40 +09:00
|
|
|
|
2021-07-13 19:40:15 +09:00
|
|
|
}
|