From 60cd5c76f88f7769fb4ce9c9c5ee25402f8cda0a Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Mon, 20 Jun 2016 21:12:41 -0700 Subject: [PATCH] Fix(challenges): Reset challenge ui on unmount --- common/app/routes/challenges/components/Show.jsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/common/app/routes/challenges/components/Show.jsx b/common/app/routes/challenges/components/Show.jsx index c4a9a5adeb..185b86152b 100644 --- a/common/app/routes/challenges/components/Show.jsx +++ b/common/app/routes/challenges/components/Show.jsx @@ -13,7 +13,8 @@ import Video from './video/Video.jsx'; import { fetchChallenge, fetchChallenges, - replaceChallenge + replaceChallenge, + resetUi } from '../redux/actions'; import { challengeSelector } from '../redux/selectors'; @@ -28,7 +29,8 @@ const views = { const bindableActions = { fetchChallenge, fetchChallenges, - replaceChallenge + replaceChallenge, + resetUi }; const mapStateToProps = createSelector( @@ -60,9 +62,13 @@ export class Challenges extends PureComponent { fetchChallenges: PropTypes.func, replaceChallenge: PropTypes.func, params: PropTypes.object, - areChallengesLoaded: PropTypes.bool + areChallengesLoaded: PropTypes.bool, + resetUi: PropTypes.func }; + componentWillUnmount() { + this.props.resetUi(); + } componentDidMount() { if (!this.props.areChallengesLoaded) { this.props.fetchChallenges(); @@ -71,6 +77,7 @@ export class Challenges extends PureComponent { componentWillReceiveProps(nextProps) { if (this.props.params.dashedName !== nextProps.params.dashedName) { + this.props.resetUi(); this.props.replaceChallenge({ dashedName: nextProps.params.dashedName, block: nextProps.params.block