fix(document.title): Update document title for Challenge route

pull/16294/head
Stuart Taylor 2017-12-23 11:18:36 +00:00
parent 65356ff7e7
commit b14a821f6c
1 changed files with 13 additions and 5 deletions

View File

@ -15,8 +15,8 @@ import Modern from './views/Modern';
import {
fetchChallenge,
challengeSelector
challengeSelector,
updateTitle
} from '../../redux';
import { makeToast } from '../../Toasts/redux';
import { paramsSelector } from '../../Router/redux';
@ -33,7 +33,8 @@ const views = {
const mapDispatchToProps = {
fetchChallenge,
makeToast
makeToast,
updateTitle
};
const mapStateToProps = createSelector(
@ -42,12 +43,13 @@ const mapStateToProps = createSelector(
paramsSelector,
(
{ dashedName, isTranslated },
{ viewType },
params,
{ viewType, title },
params
) => ({
challenge: dashedName,
isTranslated,
params,
title,
viewType
})
);
@ -64,6 +66,8 @@ const propTypes = {
dashedName: PropTypes.string,
lang: PropTypes.string.isRequired
}),
title: PropTypes.string,
updateTitle: PropTypes.func.isRequired,
viewType: PropTypes.string
};
@ -82,12 +86,16 @@ export class Show extends PureComponent {
}
componentDidMount() {
this.props.updateTitle(this.props.title);
if (this.isNotTranslated(this.props)) {
this.makeTranslateToast();
}
}
componentWillReceiveProps(nextProps) {
if (this.props.title !== nextProps.title) {
this.props.updateTitle(nextProps.title);
}
const { params: { dashedName } } = nextProps;
if (
this.props.params.dashedName !== dashedName &&