Merge pull request #41 from domwakeling/issue35

fix: successMessage not changing
This commit is contained in:
Stuart Taylor
2018-05-10 23:25:31 +01:00
committed by Mrugesh Mohapatra
parent 71e7026212
commit 1bb7f4f57c
2 changed files with 38 additions and 8 deletions

View File

@ -14,6 +14,8 @@ import CompletionModal from '../components/CompletionModal';
import HelpModal from '../components/HelpModal'; import HelpModal from '../components/HelpModal';
import ResetModal from '../components/ResetModal'; import ResetModal from '../components/ResetModal';
import { randomCompliment } from '../utils/get-words';
import { challengeTypes } from '../../../../utils/challengeTypes'; import { challengeTypes } from '../../../../utils/challengeTypes';
import { ChallengeNode } from '../../../redux/propTypes'; import { ChallengeNode } from '../../../redux/propTypes';
import { import {
@ -21,7 +23,8 @@ import {
challengeFilesSelector, challengeFilesSelector,
initTests, initTests,
updateChallengeMeta, updateChallengeMeta,
challengeMounted challengeMounted,
updateSuccessMessage
} from '../redux'; } from '../redux';
import './classic.css'; import './classic.css';
@ -32,7 +35,13 @@ const mapStateToProps = createSelector(challengeFilesSelector, files => ({
const mapDispatchToProps = dispatch => const mapDispatchToProps = dispatch =>
bindActionCreators( bindActionCreators(
{ createFiles, initTests, updateChallengeMeta, challengeMounted }, {
createFiles,
initTests,
updateChallengeMeta,
challengeMounted,
updateSuccessMessage
},
dispatch dispatch
); );
@ -51,7 +60,8 @@ const propTypes = {
nextchallengePath: PropTypes.string nextchallengePath: PropTypes.string
}) })
}), }),
updateChallengeMeta: PropTypes.func.isRequired updateChallengeMeta: PropTypes.func.isRequired,
updateSuccessMessage: PropTypes.func.isRequired
}; };
class ShowClassic extends PureComponent { class ShowClassic extends PureComponent {
@ -61,12 +71,14 @@ class ShowClassic extends PureComponent {
createFiles, createFiles,
initTests, initTests,
updateChallengeMeta, updateChallengeMeta,
updateSuccessMessage,
data: { challengeNode: { files, title, fields: { tests } } }, data: { challengeNode: { files, title, fields: { tests } } },
pathContext: { challengeMeta } pathContext: { challengeMeta }
} = this.props; } = this.props;
createFiles(files); createFiles(files);
initTests(tests); initTests(tests);
updateChallengeMeta({ ...challengeMeta, title }); updateChallengeMeta({ ...challengeMeta, title });
updateSuccessMessage(randomCompliment());
challengeMounted(challengeMeta.id); challengeMounted(challengeMeta.id);
} }
@ -77,11 +89,13 @@ class ShowClassic extends PureComponent {
createFiles, createFiles,
initTests, initTests,
updateChallengeMeta, updateChallengeMeta,
updateSuccessMessage,
data: { data: {
challengeNode: { files, title: currentTitle, fields: { tests } } challengeNode: { files, title: currentTitle, fields: { tests } }
}, },
pathContext: { challengeMeta } pathContext: { challengeMeta }
} = this.props; } = this.props;
updateSuccessMessage(randomCompliment());
if (prevTitle !== currentTitle) { if (prevTitle !== currentTitle) {
createFiles(files); createFiles(files);
initTests(tests); initTests(tests);

View File

@ -5,17 +5,28 @@ import { connect } from 'react-redux';
import Helmet from 'react-helmet'; import Helmet from 'react-helmet';
import { randomCompliment } from '../utils/get-words';
import { ChallengeNode } from '../../../redux/propTypes'; import { ChallengeNode } from '../../../redux/propTypes';
import SidePanel from './Side-Panel'; import SidePanel from './Side-Panel';
import ToolPanel from './Tool-Panel'; import ToolPanel from './Tool-Panel';
import CompletionModal from '../components/CompletionModal'; import CompletionModal from '../components/CompletionModal';
import HelpModal from '../components/HelpModal'; import HelpModal from '../components/HelpModal';
import { bindActionCreators } from 'redux'; import { bindActionCreators } from 'redux';
import { updateChallengeMeta, createFiles } from '../redux'; import {
updateChallengeMeta,
createFiles,
updateSuccessMessage
} from '../redux';
const mapStateToProps = () => ({}); const mapStateToProps = () => ({});
const mapDispatchToProps = dispatch => const mapDispatchToProps = dispatch =>
bindActionCreators({ updateChallengeMeta, createFiles }, dispatch); bindActionCreators(
{
updateChallengeMeta,
createFiles,
updateSuccessMessage
}, dispatch);
const propTypes = { const propTypes = {
createFiles: PropTypes.func.isRequired, createFiles: PropTypes.func.isRequired,
@ -25,7 +36,8 @@ const propTypes = {
pathContext: PropTypes.shape({ pathContext: PropTypes.shape({
challengeMeta: PropTypes.object challengeMeta: PropTypes.object
}), }),
updateChallengeMeta: PropTypes.func.isRequired updateChallengeMeta: PropTypes.func.isRequired,
updateSuccessMessage: PropTypes.func.isRequired
}; };
export class Project extends PureComponent { export class Project extends PureComponent {
@ -34,9 +46,11 @@ export class Project extends PureComponent {
createFiles, createFiles,
data: { challengeNode: { title } }, data: { challengeNode: { title } },
pathContext: { challengeMeta }, pathContext: { challengeMeta },
updateChallengeMeta updateChallengeMeta,
updateSuccessMessage
} = this.props; } = this.props;
createFiles({}); createFiles({});
updateSuccessMessage(randomCompliment());
return updateChallengeMeta({ ...challengeMeta, title }); return updateChallengeMeta({ ...challengeMeta, title });
} }
@ -46,8 +60,10 @@ export class Project extends PureComponent {
createFiles, createFiles,
data: { challengeNode: { title: currentTitle } }, data: { challengeNode: { title: currentTitle } },
pathContext: { challengeMeta }, pathContext: { challengeMeta },
updateChallengeMeta updateChallengeMeta,
updateSuccessMessage
} = this.props; } = this.props;
updateSuccessMessage(randomCompliment());
if (prevTitle !== currentTitle) { if (prevTitle !== currentTitle) {
createFiles({}); createFiles({});
updateChallengeMeta({ ...challengeMeta, title: currentTitle }); updateChallengeMeta({ ...challengeMeta, title: currentTitle });