const bindAll = require('lodash.bindall'); const connect = require('react-redux').connect; const PropTypes = require('prop-types'); const React = require('react'); const sessionActions = require('../../redux/session.js'); const IframeModal = require('../modal/iframe/modal.jsx'); const Registration = require('../registration/registration.jsx'); require('./intro.scss'); class Intro extends React.Component { constructor (props) { super(props); bindAll(this, [ 'handleShowVideo', 'handleCloseVideo', 'handleJoinClick', 'handleCloseRegistration', 'handleCompleteRegistration' ]); this.state = { videoOpen: false }; } handleShowVideo () { this.setState({videoOpen: true}); } handleCloseVideo () { this.setState({videoOpen: false}); } handleJoinClick (e) { e.preventDefault(); this.setState({registrationOpen: true}); } handleCloseRegistration () { this.setState({registrationOpen: false}); } handleCompleteRegistration () { this.props.dispatch(sessionActions.refreshSession()); this.closeRegistration(); } render () { return (

Scratch Cat Scratch Cat
{this.props.messages['intro.tryItOut']}
Tera Tera
{this.props.messages['intro.seeExamples']}
Gobo Gobo
Intro Video
); } } Intro.propTypes = { dispatch: PropTypes.func.isRequired, messages: PropTypes.shape({ 'intro.aboutScratch': PropTypes.string, 'intro.forEducators': PropTypes.string, 'intro.forParents': PropTypes.string, 'intro.itsFree': PropTypes.string, 'intro.joinScratch': PropTypes.string, 'intro.seeExamples': PropTypes.string, 'intro.tagLine': PropTypes.string, 'intro.tryItOut': PropTypes.string, 'intro.description': PropTypes.string }) }; Intro.defaultProps = { messages: { 'intro.aboutScratch': 'ABOUT SCRATCH', 'intro.forEducators': 'FOR EDUCATORS', 'intro.forParents': 'FOR PARENTS', 'intro.itsFree': 'it\'s free!', 'intro.joinScratch': 'JOIN SCRATCH', 'intro.seeExamples': 'SEE EXAMPLES', 'intro.tagLine': 'Create stories, games, and animations
Share with others around the world', 'intro.tryItOut': 'TRY IT OUT', 'intro.description': 'A creative learning community with ' + 'over 14 million projects shared' }, session: {} }; const mapStateToProps = state => ({ session: state.session }); const ConnectedIntro = connect(mapStateToProps)(Intro); module.exports = ConnectedIntro;