diff --git a/packages/learn/src/templates/Challenges/views/components/Show.jsx b/packages/learn/src/templates/Challenges/views/components/Show.jsx deleted file mode 100644 index 43f88f7be2..0000000000 --- a/packages/learn/src/templates/Challenges/views/components/Show.jsx +++ /dev/null @@ -1,128 +0,0 @@ -import React, { PureComponent } from 'react'; -import PropTypes from 'prop-types'; -import { connect } from 'react-redux'; -import { createSelector } from 'reselect'; - -import { challengeMetaSelector, updateSuccessMessage } from './redux'; - -import Classic from './views/classic'; -import Step from './views/step'; -import Project from './views/project'; -import BackEnd from './views/backend'; -import Quiz from './views/quiz'; -import Modern from './views/Modern'; -import NotFound from '../../NotFound'; - -import { fullBlocksSelector } from '../../entities'; -import { - fetchChallenge, - challengeSelector, - updateTitle -} from '../../redux'; -import { makeToast } from '../../Toasts/redux'; -import { paramsSelector } from '../../Router/redux'; -import { randomCompliment } from '../../utils/get-words'; - -const views = { - backend: BackEnd, - classic: Classic, - modern: Modern, - project: Project, - quiz: Quiz, - simple: Project, - step: Step, - invalid: NotFound -}; - -const mapDispatchToProps = { - fetchChallenge, - makeToast, - updateTitle, - updateSuccessMessage -}; - -const mapStateToProps = createSelector( - challengeSelector, - challengeMetaSelector, - paramsSelector, - fullBlocksSelector, - ( - { dashedName, isTranslated }, - { viewType, title }, - params, - blocks - ) => ({ - blocks, - challenge: dashedName, - isTranslated, - params, - title, - viewType - }) -); - -const link = 'http://forum.freecodecamp.org/t/' + - 'guidelines-for-translating-free-code-camp' + - '-to-any-language/19111'; -const helpUsTranslate = Help Us; -const propTypes = { - isTranslated: PropTypes.bool, - makeToast: PropTypes.func.isRequired, - params: PropTypes.shape({ - block: PropTypes.string, - dashedName: PropTypes.string, - lang: PropTypes.string.isRequired - }), - showLoading: PropTypes.bool, - title: PropTypes.string, - updateSuccessMessage: PropTypes.func.isRequired, - updateTitle: PropTypes.func.isRequired, - viewType: PropTypes.string -}; - -export class Show extends PureComponent { - - isNotTranslated({ isTranslated, params: { lang } }) { - return lang !== 'en' && !isTranslated; - } - - makeTranslateToast() { - this.props.makeToast({ - message: 'We haven\'t translated this challenge yet.', - action: helpUsTranslate, - timeout: 15000 - }); - } - - componentDidMount() { - this.props.updateTitle(this.props.title); - this.props.updateSuccessMessage(randomCompliment()); - 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) { - this.props.updateSuccessMessage(randomCompliment()); - if (this.isNotTranslated(nextProps)) { - this.makeTranslateToast(); - } - } - } - - render() { - const { viewType } = this.props; - const View = views[viewType] || Classic; - return ; - } -} - -Show.displayName = 'Show(ChallengeView)'; -Show.propTypes = propTypes; - -export default connect(mapStateToProps, mapDispatchToProps)(Show);