diff options
Diffstat (limited to 'mascara/src/app/first-time/index.js')
-rw-r--r-- | mascara/src/app/first-time/index.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/mascara/src/app/first-time/index.js b/mascara/src/app/first-time/index.js new file mode 100644 index 000000000..a2cb8d71c --- /dev/null +++ b/mascara/src/app/first-time/index.js @@ -0,0 +1,54 @@ +import React, {Component, PropTypes} from 'react' +import CreatePasswordScreen from './create-password-screen' + +export default class FirstTimeFlow extends Component { + + static propTypes = { + screenType: PropTypes.string + }; + + static defaultProps = { + screenType: FirstTimeFlow.CREATE_PASSWORD + }; + + static SCREEN_TYPE = { + CREATE_PASSWORD: 'create_password', + UNIQUE_IMAGE: 'unique_image', + TERM_OF_USE: 'term_of_use', + BACK_UP_PHRASE: 'back_up_phrase', + CONFIRM_BACK_UP_PHRASE: 'confirm_back_up_phrase', + BUY_ETHER: 'buy_ether' + }; + + static getScreenType = ({isInitialized, noActiveNotices, seedWords}) => { + const {SCREEN_TYPE} = FirstTimeFlow + + if (!isInitialized) { + return SCREEN_TYPE.CREATE_PASSWORD + } + + if (!noActiveNotices) { + return SCREEN_TYPE.TERM_OF_USE + } + + if (seedWords) { + return SCREEN_TYPE.BACK_UP_PHRASE + } + }; + + renderScreen() { + const {SCREEN_TYPE} = FirstTimeFlow + + switch (this.props.screenType) { + case SCREEN_TYPE.CREATE_PASSWORD: + return <CreatePasswordScreen /> + default: + return <noscript /> + } + } + + render() { + return <div>{this.renderScreen()}</div> + } + +} |