From 8b90b1d1b12bdae4f1fa06caec5cd5619dc83437 Mon Sep 17 00:00:00 2001 From: Alexander Tseung Date: Tue, 6 Feb 2018 22:03:37 -0800 Subject: Remove accessing PropTypes from main React package --- mascara/src/app/buy-ether-widget/index.js | 3 ++- mascara/src/app/first-time/backup-phrase-screen.js | 7 ++--- mascara/src/app/first-time/breadcrumbs.js | 5 ++-- mascara/src/app/first-time/buy-ether-screen.js | 3 ++- .../src/app/first-time/create-password-screen.js | 31 +++++++++++----------- .../src/app/first-time/import-account-screen.js | 3 ++- .../app/first-time/import-seed-phrase-screen.js | 3 ++- mascara/src/app/first-time/index.js | 3 ++- mascara/src/app/first-time/loading-screen.js | 10 +++++-- mascara/src/app/first-time/notice-screen.js | 28 ++++++++++--------- mascara/src/app/first-time/unique-image-screen.js | 3 ++- mascara/src/app/shapeshift-form/index.js | 3 ++- 12 files changed, 60 insertions(+), 42 deletions(-) (limited to 'mascara') diff --git a/mascara/src/app/buy-ether-widget/index.js b/mascara/src/app/buy-ether-widget/index.js index 9fe659daa..c60221a0a 100644 --- a/mascara/src/app/buy-ether-widget/index.js +++ b/mascara/src/app/buy-ether-widget/index.js @@ -1,4 +1,5 @@ -import React, {Component, PropTypes} from 'react' +import React, { Component } from 'react' +import PropTypes from 'prop-types' import classnames from 'classnames' import {connect} from 'react-redux' import {qrcode} from 'qrcode-npm' diff --git a/mascara/src/app/first-time/backup-phrase-screen.js b/mascara/src/app/first-time/backup-phrase-screen.js index c68dacea2..9db61f3ab 100644 --- a/mascara/src/app/first-time/backup-phrase-screen.js +++ b/mascara/src/app/first-time/backup-phrase-screen.js @@ -1,5 +1,6 @@ -import React, {Component, PropTypes} from 'react' -import {connect} from 'react-redux'; +import React, { Component } from 'react' +import PropTypes from 'prop-types' +import {connect} from 'react-redux' import classnames from 'classnames' import shuffle from 'lodash.shuffle' import {compose, onlyUpdateForPropTypes} from 'recompose' @@ -194,7 +195,7 @@ class BackupPhraseScreen extends Component { - ) + ) } renderBack () { diff --git a/mascara/src/app/first-time/breadcrumbs.js b/mascara/src/app/first-time/breadcrumbs.js index f8460d200..b81a9fb9b 100644 --- a/mascara/src/app/first-time/breadcrumbs.js +++ b/mascara/src/app/first-time/breadcrumbs.js @@ -1,10 +1,11 @@ -import React, {Component, PropTypes} from 'react' +import React, { Component } from 'react' +import PropTypes from 'prop-types' export default class Breadcrumbs extends Component { static propTypes = { total: PropTypes.number, - currentIndex: PropTypes.number + currentIndex: PropTypes.number, }; render() { diff --git a/mascara/src/app/first-time/buy-ether-screen.js b/mascara/src/app/first-time/buy-ether-screen.js index 45b2df1c8..c5a560638 100644 --- a/mascara/src/app/first-time/buy-ether-screen.js +++ b/mascara/src/app/first-time/buy-ether-screen.js @@ -1,4 +1,5 @@ -import React, {Component, PropTypes} from 'react' +import React, { Component } from 'react' +import PropTypes from 'prop-types' import classnames from 'classnames' import {connect} from 'react-redux' import {qrcode} from 'qrcode-npm' diff --git a/mascara/src/app/first-time/create-password-screen.js b/mascara/src/app/first-time/create-password-screen.js index 0b36c6815..d1a2ec70f 100644 --- a/mascara/src/app/first-time/create-password-screen.js +++ b/mascara/src/app/first-time/create-password-screen.js @@ -1,6 +1,7 @@ import EventEmitter from 'events' -import React, {Component, PropTypes} from 'react' -import {connect} from 'react-redux'; +import React, { Component } from 'react' +import PropTypes from 'prop-types' +import {connect} from 'react-redux' import {createNewVaultAndKeychain} from '../../../../ui/app/actions' import LoadingScreen from './loading-screen' import Breadcrumbs from './breadcrumbs' @@ -12,12 +13,12 @@ class CreatePasswordScreen extends Component { createAccount: PropTypes.func.isRequired, goToImportWithSeedPhrase: PropTypes.func.isRequired, goToImportAccount: PropTypes.func.isRequired, - next: PropTypes.func.isRequired + next: PropTypes.func.isRequired, } state = { password: '', - confirmPassword: '' + confirmPassword: '', } constructor () { @@ -25,34 +26,34 @@ class CreatePasswordScreen extends Component { this.animationEventEmitter = new EventEmitter() } - isValid() { - const {password, confirmPassword} = this.state; + isValid () { + const {password, confirmPassword} = this.state if (!password || !confirmPassword) { - return false; + return false } if (password.length < 8) { - return false; + return false } - return password === confirmPassword; + return password === confirmPassword } createAccount = () => { if (!this.isValid()) { - return; + return } - const {password} = this.state; - const {createAccount, next} = this.props; + const {password} = this.state + const {createAccount, next} = this.props createAccount(password) - .then(next); + .then(next) } - render() { - const { isLoading, goToImportAccount, goToImportWithSeedPhrase } = this.props + render () { + const { isLoading, goToImportWithSeedPhrase } = this.props return isLoading ? diff --git a/mascara/src/app/first-time/import-account-screen.js b/mascara/src/app/first-time/import-account-screen.js index bf8e209e4..ab0aca0f0 100644 --- a/mascara/src/app/first-time/import-account-screen.js +++ b/mascara/src/app/first-time/import-account-screen.js @@ -1,4 +1,5 @@ -import React, {Component, PropTypes} from 'react' +import React, { Component } from 'react' +import PropTypes from 'prop-types' import {connect} from 'react-redux' import classnames from 'classnames' import LoadingScreen from './loading-screen' diff --git a/mascara/src/app/first-time/import-seed-phrase-screen.js b/mascara/src/app/first-time/import-seed-phrase-screen.js index 2b01fa75d..181151ca9 100644 --- a/mascara/src/app/first-time/import-seed-phrase-screen.js +++ b/mascara/src/app/first-time/import-seed-phrase-screen.js @@ -1,4 +1,5 @@ -import React, {Component, PropTypes} from 'react' +import React, { Component } from 'react' +import PropTypes from 'prop-types' import {connect} from 'react-redux' import LoadingScreen from './loading-screen' import {createNewVaultAndRestore, hideWarning, displayWarning} from '../../../../ui/app/actions' diff --git a/mascara/src/app/first-time/index.js b/mascara/src/app/first-time/index.js index 66b591bd8..b06f2ba9d 100644 --- a/mascara/src/app/first-time/index.js +++ b/mascara/src/app/first-time/index.js @@ -1,4 +1,5 @@ -import React, {Component, PropTypes} from 'react' +import React, { Component } from 'react' +import PropTypes from 'prop-types' import {connect} from 'react-redux' import CreatePasswordScreen from './create-password-screen' import UniqueImageScreen from './unique-image-screen' diff --git a/mascara/src/app/first-time/loading-screen.js b/mascara/src/app/first-time/loading-screen.js index 732b7f2d7..01e1c1998 100644 --- a/mascara/src/app/first-time/loading-screen.js +++ b/mascara/src/app/first-time/loading-screen.js @@ -1,4 +1,5 @@ -import React, {Component, PropTypes} from 'react' +import React from 'react' +import PropTypes from 'prop-types' import Spinner from './spinner' export default function LoadingScreen({ className = '', loadingMessage }) { @@ -7,5 +8,10 @@ export default function LoadingScreen({ className = '', loadingMessage }) {
{loadingMessage}
- ); + ) +} + +LoadingScreen.propTypes = { + className: PropTypes.string, + loadingMessage: PropTypes.string, } diff --git a/mascara/src/app/first-time/notice-screen.js b/mascara/src/app/first-time/notice-screen.js index d09070a95..e691a2f47 100644 --- a/mascara/src/app/first-time/notice-screen.js +++ b/mascara/src/app/first-time/notice-screen.js @@ -1,4 +1,5 @@ -import React, {Component, PropTypes} from 'react' +import React, { Component } from 'react' +import PropTypes from 'prop-types' import Markdown from 'react-markdown' import {connect} from 'react-redux' import debounce from 'lodash.debounce' @@ -12,25 +13,26 @@ class NoticeScreen extends Component { lastUnreadNotice: PropTypes.shape({ title: PropTypes.string, date: PropTypes.string, - body: PropTypes.string + body: PropTypes.string, }), - next: PropTypes.func.isRequired + next: PropTypes.func.isRequired, + markNoticeRead: PropTypes.func, }; static defaultProps = { - lastUnreadNotice: {} + lastUnreadNotice: {}, }; state = { atBottom: false, } - componentDidMount() { + componentDidMount () { this.onScroll() } acceptTerms = () => { - const { markNoticeRead, lastUnreadNotice, next } = this.props; + const { markNoticeRead, lastUnreadNotice, next } = this.props const defer = markNoticeRead(lastUnreadNotice) .then(() => this.setState({ atBottom: false })) @@ -43,17 +45,17 @@ class NoticeScreen extends Component { if (this.state.atBottom) return const target = document.querySelector('.tou__body') - const {scrollTop, offsetHeight, scrollHeight} = target; - const atBottom = scrollTop + offsetHeight >= scrollHeight; + const {scrollTop, offsetHeight, scrollHeight} = target + const atBottom = scrollTop + offsetHeight >= scrollHeight this.setState({atBottom: atBottom}) }, 25) - render() { + render () { const { address, - lastUnreadNotice: { title, body } - } = this.props; + lastUnreadNotice: { title, body }, + } = this.props const { atBottom } = this.state return ( @@ -84,9 +86,9 @@ class NoticeScreen extends Component { export default connect( ({ metamask: { selectedAddress, lastUnreadNotice } }) => ({ lastUnreadNotice, - address: selectedAddress + address: selectedAddress, }), dispatch => ({ - markNoticeRead: notice => dispatch(markNoticeRead(notice)) + markNoticeRead: notice => dispatch(markNoticeRead(notice)), }) )(NoticeScreen) diff --git a/mascara/src/app/first-time/unique-image-screen.js b/mascara/src/app/first-time/unique-image-screen.js index ef6bd28ab..46448aacf 100644 --- a/mascara/src/app/first-time/unique-image-screen.js +++ b/mascara/src/app/first-time/unique-image-screen.js @@ -1,4 +1,5 @@ -import React, {Component, PropTypes} from 'react' +import React, { Component } from 'react' +import PropTypes from 'prop-types' import {connect} from 'react-redux' import Identicon from '../../../../ui/app/components/identicon' import Breadcrumbs from './breadcrumbs' diff --git a/mascara/src/app/shapeshift-form/index.js b/mascara/src/app/shapeshift-form/index.js index 15c7e95e1..53a63403a 100644 --- a/mascara/src/app/shapeshift-form/index.js +++ b/mascara/src/app/shapeshift-form/index.js @@ -1,4 +1,5 @@ -import React, {Component, PropTypes} from 'react' +import React, { Component } from 'react' +import PropTypes from 'prop-types' import classnames from 'classnames' import {qrcode} from 'qrcode-npm' import {connect} from 'react-redux' -- cgit v1.2.3 From c26e0d555b7cb89e88713041714206abd8f4275e Mon Sep 17 00:00:00 2001 From: Dan Date: Mon, 19 Feb 2018 22:46:18 -0330 Subject: Fix Import Existing DEN in popup New UI first time flow. --- .../app/first-time/import-seed-phrase-screen.js | 14 ++++++- mascara/src/app/first-time/index.js | 49 +++++++++++++++++++--- 2 files changed, 56 insertions(+), 7 deletions(-) (limited to 'mascara') diff --git a/mascara/src/app/first-time/import-seed-phrase-screen.js b/mascara/src/app/first-time/import-seed-phrase-screen.js index 181151ca9..a03a16329 100644 --- a/mascara/src/app/first-time/import-seed-phrase-screen.js +++ b/mascara/src/app/first-time/import-seed-phrase-screen.js @@ -2,7 +2,13 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import {connect} from 'react-redux' import LoadingScreen from './loading-screen' -import {createNewVaultAndRestore, hideWarning, displayWarning} from '../../../../ui/app/actions' +import { + createNewVaultAndRestore, + hideWarning, + displayWarning, + unMarkPasswordForgotten, + clearNotices, +} from '../../../../ui/app/actions' class ImportSeedPhraseScreen extends Component { static propTypes = { @@ -23,7 +29,7 @@ class ImportSeedPhraseScreen extends Component { onClick = () => { const { password, seedPhrase, confirmPassword } = this.state - const { createNewVaultAndRestore, next, displayWarning } = this.props + const { createNewVaultAndRestore, next, displayWarning, leaveImportSeedSreenState } = this.props if (seedPhrase.split(' ').length !== 12) { this.warning = 'Seed Phrases are 12 words long' @@ -43,6 +49,7 @@ class ImportSeedPhraseScreen extends Component { return } this.warning = null + leaveImportSeedSreenState() createNewVaultAndRestore(password, seedPhrase) .then(next) } @@ -113,6 +120,9 @@ class ImportSeedPhraseScreen extends Component { export default connect( ({ appState: { isLoading, warning } }) => ({ isLoading, warning }), dispatch => ({ + leaveImportSeedSreenState: () => { + dispatch(unMarkPasswordForgotten()) + }, createNewVaultAndRestore: (pw, seed) => dispatch(createNewVaultAndRestore(pw, seed)), displayWarning: (warning) => dispatch(displayWarning(warning)), hideWarning: () => dispatch(hideWarning()), diff --git a/mascara/src/app/first-time/index.js b/mascara/src/app/first-time/index.js index b06f2ba9d..883342d16 100644 --- a/mascara/src/app/first-time/index.js +++ b/mascara/src/app/first-time/index.js @@ -7,7 +7,11 @@ import NoticeScreen from './notice-screen' import BackupPhraseScreen from './backup-phrase-screen' import ImportAccountScreen from './import-account-screen' import ImportSeedPhraseScreen from './import-seed-phrase-screen' -import {onboardingBuyEthView} from '../../../../ui/app/actions' +const Loading = require('../../../../ui/app//components/loading') +import { + onboardingBuyEthView, + unMarkPasswordForgotten, +} from '../../../../ui/app/actions' class FirstTimeFlow extends Component { @@ -33,6 +37,7 @@ class FirstTimeFlow extends Component { NOTICE: 'notice', BACK_UP_PHRASE: 'back_up_phrase', CONFIRM_BACK_UP_PHRASE: 'confirm_back_up_phrase', + LOADING: 'loading', }; constructor (props) { @@ -51,11 +56,15 @@ class FirstTimeFlow extends Component { isInitialized, seedWords, noActiveNotices, + forgottenPassword, } = this.props const {SCREEN_TYPE} = FirstTimeFlow // return SCREEN_TYPE.NOTICE + if (forgottenPassword) { + return SCREEN_TYPE.IMPORT_SEED_PHRASE + } if (!isInitialized) { return SCREEN_TYPE.CREATE_PASSWORD } @@ -71,7 +80,17 @@ class FirstTimeFlow extends Component { renderScreen () { const {SCREEN_TYPE} = FirstTimeFlow - const {goToBuyEtherView, address} = this.props + const { + goToBuyEtherView, + address, + restoreCreatePasswordScreen, + forgottenPassword, + isLoading, + } = this.props + + if (isLoading) { + return h(Loading) + } switch (this.state.screenType) { case SCREEN_TYPE.CREATE_PASSWORD: @@ -92,8 +111,14 @@ class FirstTimeFlow extends Component { case SCREEN_TYPE.IMPORT_SEED_PHRASE: return ( this.setScreenType(SCREEN_TYPE.CREATE_PASSWORD)} - next={() => this.setScreenType(SCREEN_TYPE.NOTICE)} + back={() => { + leaveImportSeedSreenState() + this.setScreenType(SCREEN_TYPE.CREATE_PASSWORD) + }} + next={() => { + const newScreenType = forgottenPassword ? null : SCREEN_TYPE.NOTICE + this.setScreenType(newScreenType) + }} /> ) case SCREEN_TYPE.UNIQUE_IMAGE: @@ -130,13 +155,27 @@ class FirstTimeFlow extends Component { } export default connect( - ({ metamask: { isInitialized, seedWords, noActiveNotices, selectedAddress } }) => ({ + ({ + metamask: { + isInitialized, + seedWords, + noActiveNotices, + selectedAddress, + forgottenPassword, + }, + appState: { + isLoading, + } + }) => ({ isInitialized, seedWords, noActiveNotices, address: selectedAddress, + forgottenPassword, + isLoading, }), dispatch => ({ + leaveImportSeedSreenState: () => dispatch(unMarkPasswordForgotten()), goToBuyEtherView: address => dispatch(onboardingBuyEthView(address)), }) )(FirstTimeFlow) -- cgit v1.2.3 From 00c5dd2736cd389c6658778bb5238eefb2d2f926 Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 20 Feb 2018 14:00:35 -0330 Subject: Fix variable spelling error. --- mascara/src/app/first-time/import-seed-phrase-screen.js | 6 +++--- mascara/src/app/first-time/index.js | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) (limited to 'mascara') diff --git a/mascara/src/app/first-time/import-seed-phrase-screen.js b/mascara/src/app/first-time/import-seed-phrase-screen.js index a03a16329..93c3f9203 100644 --- a/mascara/src/app/first-time/import-seed-phrase-screen.js +++ b/mascara/src/app/first-time/import-seed-phrase-screen.js @@ -29,7 +29,7 @@ class ImportSeedPhraseScreen extends Component { onClick = () => { const { password, seedPhrase, confirmPassword } = this.state - const { createNewVaultAndRestore, next, displayWarning, leaveImportSeedSreenState } = this.props + const { createNewVaultAndRestore, next, displayWarning, leaveImportSeedScreenState } = this.props if (seedPhrase.split(' ').length !== 12) { this.warning = 'Seed Phrases are 12 words long' @@ -49,7 +49,7 @@ class ImportSeedPhraseScreen extends Component { return } this.warning = null - leaveImportSeedSreenState() + leaveImportSeedScreenState() createNewVaultAndRestore(password, seedPhrase) .then(next) } @@ -120,7 +120,7 @@ class ImportSeedPhraseScreen extends Component { export default connect( ({ appState: { isLoading, warning } }) => ({ isLoading, warning }), dispatch => ({ - leaveImportSeedSreenState: () => { + leaveImportSeedScreenState: () => { dispatch(unMarkPasswordForgotten()) }, createNewVaultAndRestore: (pw, seed) => dispatch(createNewVaultAndRestore(pw, seed)), diff --git a/mascara/src/app/first-time/index.js b/mascara/src/app/first-time/index.js index 883342d16..a05e0aa96 100644 --- a/mascara/src/app/first-time/index.js +++ b/mascara/src/app/first-time/index.js @@ -7,7 +7,7 @@ import NoticeScreen from './notice-screen' import BackupPhraseScreen from './backup-phrase-screen' import ImportAccountScreen from './import-account-screen' import ImportSeedPhraseScreen from './import-seed-phrase-screen' -const Loading = require('../../../../ui/app//components/loading') +const Loading = require('../../../../ui/app/components/loading') import { onboardingBuyEthView, unMarkPasswordForgotten, @@ -86,10 +86,11 @@ class FirstTimeFlow extends Component { restoreCreatePasswordScreen, forgottenPassword, isLoading, + leaveImportSeedScreenState, } = this.props if (isLoading) { - return h(Loading) + return () } switch (this.state.screenType) { @@ -112,7 +113,7 @@ class FirstTimeFlow extends Component { return ( { - leaveImportSeedSreenState() + leaveImportSeedScreenState() this.setScreenType(SCREEN_TYPE.CREATE_PASSWORD) }} next={() => { @@ -175,7 +176,7 @@ export default connect( isLoading, }), dispatch => ({ - leaveImportSeedSreenState: () => dispatch(unMarkPasswordForgotten()), + leaveImportSeedScreenState: () => dispatch(unMarkPasswordForgotten()), goToBuyEtherView: address => dispatch(onboardingBuyEthView(address)), }) )(FirstTimeFlow) -- cgit v1.2.3 From 6740be109be1b545e1efa327901c6ac4a46b8bf0 Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 20 Feb 2018 16:17:30 -0330 Subject: Temporarily disable loading indicator. --- mascara/src/app/first-time/index.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'mascara') diff --git a/mascara/src/app/first-time/index.js b/mascara/src/app/first-time/index.js index a05e0aa96..46b821c8b 100644 --- a/mascara/src/app/first-time/index.js +++ b/mascara/src/app/first-time/index.js @@ -89,9 +89,10 @@ class FirstTimeFlow extends Component { leaveImportSeedScreenState, } = this.props - if (isLoading) { - return () - } + // Disable until testing bug resolved + // if (isLoading) { + // return () + // } switch (this.state.screenType) { case SCREEN_TYPE.CREATE_PASSWORD: -- cgit v1.2.3 From 66f55f954e9f3868396e478fd79c4bbd8f8673e5 Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 20 Feb 2018 20:51:45 -0330 Subject: Render loading inside notice screen, and don't set isLoading from unMarkPasswordForgotten. --- mascara/src/app/first-time/index.js | 11 -------- mascara/src/app/first-time/notice-screen.js | 44 ++++++++++++++++------------- 2 files changed, 24 insertions(+), 31 deletions(-) (limited to 'mascara') diff --git a/mascara/src/app/first-time/index.js b/mascara/src/app/first-time/index.js index 46b821c8b..da2f6bab9 100644 --- a/mascara/src/app/first-time/index.js +++ b/mascara/src/app/first-time/index.js @@ -7,7 +7,6 @@ import NoticeScreen from './notice-screen' import BackupPhraseScreen from './backup-phrase-screen' import ImportAccountScreen from './import-account-screen' import ImportSeedPhraseScreen from './import-seed-phrase-screen' -const Loading = require('../../../../ui/app/components/loading') import { onboardingBuyEthView, unMarkPasswordForgotten, @@ -85,15 +84,9 @@ class FirstTimeFlow extends Component { address, restoreCreatePasswordScreen, forgottenPassword, - isLoading, leaveImportSeedScreenState, } = this.props - // Disable until testing bug resolved - // if (isLoading) { - // return () - // } - switch (this.state.screenType) { case SCREEN_TYPE.CREATE_PASSWORD: return ( @@ -164,9 +157,6 @@ export default connect( noActiveNotices, selectedAddress, forgottenPassword, - }, - appState: { - isLoading, } }) => ({ isInitialized, @@ -174,7 +164,6 @@ export default connect( noActiveNotices, address: selectedAddress, forgottenPassword, - isLoading, }), dispatch => ({ leaveImportSeedScreenState: () => dispatch(unMarkPasswordForgotten()), diff --git a/mascara/src/app/first-time/notice-screen.js b/mascara/src/app/first-time/notice-screen.js index e691a2f47..0f0a7e95d 100644 --- a/mascara/src/app/first-time/notice-screen.js +++ b/mascara/src/app/first-time/notice-screen.js @@ -6,6 +6,7 @@ import debounce from 'lodash.debounce' import {markNoticeRead} from '../../../../ui/app/actions' import Identicon from '../../../../ui/app/components/identicon' import Breadcrumbs from './breadcrumbs' +import LoadingScreen from './loading-screen' class NoticeScreen extends Component { static propTypes = { @@ -55,36 +56,39 @@ class NoticeScreen extends Component { const { address, lastUnreadNotice: { title, body }, + isLoading, } = this.props const { atBottom } = this.state return ( -
- -
{title}
- - - -
+ +
{title}
+ + + + ) } } export default connect( - ({ metamask: { selectedAddress, lastUnreadNotice } }) => ({ + ({ metamask: { selectedAddress, lastUnreadNotice }, appState: { isLoading } }) => ({ lastUnreadNotice, address: selectedAddress, }), -- cgit v1.2.3 From 746c3e5f1803e9b3712d22a4e4dd7ab43e84e060 Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 27 Feb 2018 13:34:31 -0330 Subject: Body width container in first time flow is consistent with app bar. --- mascara/src/app/first-time/index.css | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'mascara') diff --git a/mascara/src/app/first-time/index.css b/mascara/src/app/first-time/index.css index 4314efbe6..4f2400222 100644 --- a/mascara/src/app/first-time/index.css +++ b/mascara/src/app/first-time/index.css @@ -4,6 +4,8 @@ width: 100vw; background-color: #FFF; overflow: auto; + display: flex; + justify-content: center; } .alpha-warning { @@ -23,7 +25,6 @@ display: flex; flex-flow: column; margin-top: 70px; - margin-right: 10vw; width: 35vw; max-width: 550px; } @@ -48,6 +49,10 @@ max-width: 35rem; } +.create-password { + margin: 67px 0 50px 0px; +} + .import-account { max-width: initial; } -- cgit v1.2.3 From 07edf3f9ffdee9459f4d0b9d30b8b6821d26dbf0 Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 27 Feb 2018 13:35:29 -0330 Subject: NewUI first time flow warning message change. --- mascara/src/app/first-time/create-password-screen.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mascara') diff --git a/mascara/src/app/first-time/create-password-screen.js b/mascara/src/app/first-time/create-password-screen.js index d1a2ec70f..d348eaa1a 100644 --- a/mascara/src/app/first-time/create-password-screen.js +++ b/mascara/src/app/first-time/create-password-screen.js @@ -59,7 +59,7 @@ class CreatePasswordScreen extends Component { ? : (
-

Warning: This is Experimental software and is a Developer BETA

+

Please be aware that this version is still in under development.

Date: Tue, 27 Feb 2018 13:43:22 -0330 Subject: Move beta warning to app header. --- mascara/src/app/first-time/create-password-screen.js | 1 - 1 file changed, 1 deletion(-) (limited to 'mascara') diff --git a/mascara/src/app/first-time/create-password-screen.js b/mascara/src/app/first-time/create-password-screen.js index d348eaa1a..450d6a479 100644 --- a/mascara/src/app/first-time/create-password-screen.js +++ b/mascara/src/app/first-time/create-password-screen.js @@ -59,7 +59,6 @@ class CreatePasswordScreen extends Component { ? : (
-

Please be aware that this version is still in under development.

Date: Tue, 27 Feb 2018 14:14:55 -0330 Subject: Padding of alpha warning aligns with app-bar --- mascara/src/app/first-time/index.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mascara') diff --git a/mascara/src/app/first-time/index.css b/mascara/src/app/first-time/index.css index 4f2400222..109946e1d 100644 --- a/mascara/src/app/first-time/index.css +++ b/mascara/src/app/first-time/index.css @@ -12,7 +12,7 @@ background: #f7861c; color: #fff; line-height: 2em; - padding-left: 2em; + padding-left: 10vw; } .first-view-main { -- cgit v1.2.3 From 5f8a632fec0e83b148e4e0b7fc95339fb870d804 Mon Sep 17 00:00:00 2001 From: Alexander Tseung Date: Tue, 6 Mar 2018 09:14:57 -0800 Subject: Fix seed phrase validation clearing form (#3417) * Fix seed phrase validation clearing form * Make new ui import seed error feedback live, and allow newlines with and without carriage returns. --- .../app/first-time/import-seed-phrase-screen.js | 191 ++++++++++++--------- mascara/src/app/first-time/index.css | 16 +- 2 files changed, 123 insertions(+), 84 deletions(-) (limited to 'mascara') diff --git a/mascara/src/app/first-time/import-seed-phrase-screen.js b/mascara/src/app/first-time/import-seed-phrase-screen.js index 93c3f9203..de8d675e1 100644 --- a/mascara/src/app/first-time/import-seed-phrase-screen.js +++ b/mascara/src/app/first-time/import-seed-phrase-screen.js @@ -1,13 +1,12 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import {connect} from 'react-redux' -import LoadingScreen from './loading-screen' +import classnames from 'classnames' import { createNewVaultAndRestore, hideWarning, displayWarning, unMarkPasswordForgotten, - clearNotices, } from '../../../../ui/app/actions' class ImportSeedPhraseScreen extends Component { @@ -17,8 +16,8 @@ class ImportSeedPhraseScreen extends Component { next: PropTypes.func.isRequired, createNewVaultAndRestore: PropTypes.func.isRequired, hideWarning: PropTypes.func.isRequired, - isLoading: PropTypes.bool.isRequired, displayWarning: PropTypes.func, + leaveImportSeedScreenState: PropTypes.func, }; state = { @@ -27,98 +26,130 @@ class ImportSeedPhraseScreen extends Component { confirmPassword: '', } - onClick = () => { - const { password, seedPhrase, confirmPassword } = this.state - const { createNewVaultAndRestore, next, displayWarning, leaveImportSeedScreenState } = this.props + parseSeedPhrase = (seedPhrase) => { + return seedPhrase + .match(/\w+/g) + .join(' ') + } - if (seedPhrase.split(' ').length !== 12) { - this.warning = 'Seed Phrases are 12 words long' - displayWarning(this.warning) - return - } + onChange = ({ seedPhrase, password, confirmPassword }) => { + const { + password: prevPassword, + confirmPassword: prevConfirmPassword, + } = this.state + const { displayWarning, hideWarning } = this.props + + let warning = null - if (password.length < 8) { - this.warning = 'Passwords require a mimimum length of 8' - displayWarning(this.warning) - return + if (seedPhrase && this.parseSeedPhrase(seedPhrase).split(' ').length !== 12) { + warning = 'Seed Phrases are 12 words long' + } else if (password && password.length < 8) { + warning = 'Passwords require a mimimum length of 8' + } else if ((password || prevPassword) !== (confirmPassword || prevConfirmPassword)) { + warning = 'Confirmed password does not match' } - if (password !== confirmPassword) { - this.warning = 'Confirmed password does not match' - displayWarning(this.warning) - return + if (warning) { + displayWarning(warning) + } else { + hideWarning() } - this.warning = null + + seedPhrase && this.setState({ seedPhrase }) + password && this.setState({ password }) + confirmPassword && this.setState({ confirmPassword }) + } + + onClick = () => { + const { password, seedPhrase } = this.state + const { + createNewVaultAndRestore, + next, + displayWarning, + leaveImportSeedScreenState, + } = this.props + leaveImportSeedScreenState() - createNewVaultAndRestore(password, seedPhrase) + createNewVaultAndRestore(password, this.parseSeedPhrase(seedPhrase)) .then(next) } render () { - return this.props.isLoading - ? - : ( -
- { - e.preventDefault() - this.props.back() - }} - href="#" - > - {`< Back`} - -
- Import an Account with Seed Phrase -
-
- Enter your secret twelve word phrase here to restore your vault. -
-
- -