import React, {Component, PropTypes} from 'react' import {connect} from 'react-redux'; import CreatePasswordScreen from './create-password-screen' import UniqueImageScreen from './unique-image-screen' import NoticeScreen from './notice-screen' import BackupPhraseScreen from './backup-phrase-screen' class FirstTimeFlow extends Component { static propTypes = { isInitialized: PropTypes.bool, seedWords: PropTypes.string, noActiveNotices: PropTypes.bool }; static defaultProps = { isInitialized: false, seedWords: '', noActiveNotices: false }; static SCREEN_TYPE = { CREATE_PASSWORD: 'create_password', UNIQUE_IMAGE: 'unique_image', NOTICE: 'notice', BACK_UP_PHRASE: 'back_up_phrase', CONFIRM_BACK_UP_PHRASE: 'confirm_back_up_phrase', BUY_ETHER: 'buy_ether' }; constructor(props) { super(props); this.state = { screenType: this.getScreenType() } } setScreenType(screenType) { this.setState({ screenType }) } getScreenType() { const {isInitialized, seedWords, noActiveNotices} = this.props; const {SCREEN_TYPE} = FirstTimeFlow // return SCREEN_TYPE.UNIQUE_IMAGE if (!isInitialized) { return SCREEN_TYPE.CREATE_PASSWORD } if (!noActiveNotices) { return SCREEN_TYPE.NOTICE } if (seedWords) { return SCREEN_TYPE.BACK_UP_PHRASE } }; renderScreen() { const {SCREEN_TYPE} = FirstTimeFlow switch (this.state.screenType) { case SCREEN_TYPE.CREATE_PASSWORD: return ( this.setScreenType(SCREEN_TYPE.UNIQUE_IMAGE)} /> ) case SCREEN_TYPE.UNIQUE_IMAGE: return ( this.setScreenType(SCREEN_TYPE.NOTICE)} /> ) case SCREEN_TYPE.NOTICE: return ( this.setScreenType(SCREEN_TYPE.BACK_UP_PHRASE)} /> ) case SCREEN_TYPE.BACK_UP_PHRASE: return ( this.setScreenType(SCREEN_TYPE.BUY_ETHER)} /> ) default: return