Use withRouter for TabsBar (#6652)

TabsBar refers to router, which is a private context property of
react-router. withRouter is a recommended alternative. It also allows to
track location changes even if React.PureComponent is used.
master
Akihiko Odaki 7 years ago committed by Eugen Rochko
parent 78d772af86
commit 61e6275781
  1. 12
      app/javascript/mastodon/features/ui/components/tabs_bar.js

@ -1,6 +1,6 @@
import React from 'react';
import PropTypes from 'prop-types';
import { NavLink } from 'react-router-dom';
import { NavLink, withRouter } from 'react-router-dom';
import { FormattedMessage, injectIntl } from 'react-intl';
import { debounce } from 'lodash';
import { isUserTouching } from '../../../is_mobile';
@ -24,14 +24,12 @@ export function getLink (index) {
}
@injectIntl
export default class TabsBar extends React.Component {
static contextTypes = {
router: PropTypes.object.isRequired,
}
@withRouter
export default class TabsBar extends React.PureComponent {
static propTypes = {
intl: PropTypes.object.isRequired,
history: PropTypes.object.isRequired,
}
setRef = ref => {
@ -59,7 +57,7 @@ export default class TabsBar extends React.Component {
const listener = debounce(() => {
nextTab.removeEventListener('transitionend', listener);
this.context.router.history.push(to);
this.props.history.push(to);
}, 50);
nextTab.addEventListener('transitionend', listener);

Loading…
Cancel
Save