commit: 61e62757816cd8cfe38944d509f8ec13d7d86912
parent: 78d772af862c536b2e985977b6ba549efe668fe0
Author: Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
Date: Tue, 6 Mar 2018 15:28:05 +0900
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.
Diffstat:
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/app/javascript/mastodon/features/ui/components/tabs_bar.js b/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);