'use strict'; import React from 'react'; import { History } from 'react-router'; import PrizeActions from '../../simple_prize/actions/prize_actions'; import PrizeStore from '../../simple_prize/stores/prize_store'; import Button from 'react-bootstrap/lib/Button'; import ButtonGroup from 'react-bootstrap/lib/ButtonGroup'; import LinkContainer from 'react-router-bootstrap/lib/LinkContainer'; import UserStore from '../../../../../stores/user_store'; import UserActions from '../../../../../actions/user_actions'; import { mergeOptions } from '../../../../../utils/general_utils'; import { getLangText } from '../../../../../utils/lang_utils'; const PRLanding = React.createClass({ propTypes: { location: React.PropTypes.object }, mixins: [History], getInitialState() { return mergeOptions( PrizeStore.getState(), UserStore.getState() ); }, componentDidMount() { const { location } = this.props; UserStore.listen(this.onChange); UserActions.fetchCurrentUser(); PrizeStore.listen(this.onChange); PrizeActions.fetchPrize(); if(location && location.query && location.query.redirect) { let queryCopy = JSON.parse(JSON.stringify(location.query)); delete queryCopy.redirect; window.setTimeout(() => this.history.replaceState(null, `/${location.query.redirect}`, queryCopy)); } }, componentWillUnmount() { UserStore.unlisten(this.onChange); PrizeStore.unlisten(this.onChange); }, onChange(state) { this.setState(state); }, getButtons() { if (this.state.prize && this.state.prize.active){ return (

{getLangText('or, already an ascribe user?')}

); } return ( {getLangText('Sign up to ascribe')}

{getLangText('or, already an ascribe user?')}

); }, getTitle() { if (this.state.prize && this.state.prize.active){ return (

{getLangText('This is the submission page for Portfolio Review 2016.')}

); } return (

{getLangText('Submissions for Portfolio Review 2016 are now closed.')}

); }, render() { return (

{getLangText('Welcome to Portfolio Review 2016')}

{this.getTitle()} {this.getButtons()}
); } }); export default PRLanding;