Browse Source

feature(reEnterSeedChecker): return true or false based on whether the user has re-entered the seed correctly

renovate/lint-staged-8.x
Jack Mallers 7 years ago
parent
commit
f2c544cab8
  1. 7
      app/components/Onboarding/Onboarding.js
  2. 6
      app/components/Onboarding/ReEnterSeed.js
  3. 4
      app/containers/Root.js
  4. 22
      app/reducers/onboarding.js

7
app/components/Onboarding/Onboarding.js

@ -110,7 +110,12 @@ const Onboarding = ({
title='Re-enter your seed'
description='Yeah I know, might be annoying, but just to be safe!' // eslint-disable-line
back={() => changeStep(6)}
next={() => changeStep(8)}
next={() => {
// don't allow them to move on if they havent re-entered the seed correctly
if (!reEnterSeedProps.reEnterSeedChecker) { return }
changeStep(8)
}}
>
<ReEnterSeed {...reEnterSeedProps} />
</FormContainer>

6
app/components/Onboarding/ReEnterSeed.js

@ -2,7 +2,7 @@ import React from 'react'
import PropTypes from 'prop-types'
import styles from './ReEnterSeed.scss'
const ReEnterSeed = ({ seed, seedInput, updateSeedInput, reEnterSeedChecker, renderEnterSeedHtml }) => {
const ReEnterSeed = ({ seed, seedInput, updateSeedInput }) => {
return (
<div className={styles.container}>
<ul className={styles.seedContainer}>
@ -33,9 +33,9 @@ const ReEnterSeed = ({ seed, seedInput, updateSeedInput, reEnterSeedChecker, ren
}
ReEnterSeed.propTypes = {
seed: PropTypes.array.isRequired,
seedInput: PropTypes.array.isRequired,
updateSeedInput: PropTypes.func.isRequired,
reEnterSeedChecker: PropTypes.array.isRequired
updateSeedInput: PropTypes.func.isRequired
}
export default ReEnterSeed

4
app/containers/Root.js

@ -50,8 +50,7 @@ const mapStateToProps = state => ({
syncPercentage: lndSelectors.syncPercentage(state),
passwordIsValid: onboardingSelectors.passwordIsValid(state),
reEnterSeedChecker: onboardingSelectors.reEnterSeedChecker(state),
renderEnterSeedHtml: onboardingSelectors.renderEnterSeedHtml(state)
reEnterSeedChecker: onboardingSelectors.reEnterSeedChecker(state)
})
const mergeProps = (stateProps, dispatchProps, ownProps) => {
@ -111,7 +110,6 @@ const mergeProps = (stateProps, dispatchProps, ownProps) => {
seed: stateProps.onboarding.seed,
seedInput: stateProps.onboarding.seedInput,
reEnterSeedChecker: stateProps.reEnterSeedChecker,
renderEnterSeedHtml: stateProps.renderEnterSeedHtml,
updateSeedInput: dispatchProps.updateSeedInput
}

22
app/reducers/onboarding.js

@ -208,25 +208,7 @@ onboardingSelectors.passwordIsValid = createSelector(
onboardingSelectors.reEnterSeedChecker = createSelector(
seedSelector,
seedInputSelector,
(seed, seedInput) => {
// console.log('seedInput: ', seedInput)
// const seedInputArr = seedInput.split(' ').filter(n => true && n.length)
// console.log('seedInputArr: ', seedInputArr)
// return seedInputArr.map((word, index) => { return { valid: word === seed[index], word } })
}
)
onboardingSelectors.renderEnterSeedHtml = createSelector(
onboardingSelectors.reEnterSeedChecker,
(reEnterSeedChecker) => {
// console.log('reEnterSeedChecker: ', reEnterSeedChecker)
// if (!reEnterSeedChecker.length) { return '<span>gang</span>' }
// return reEnterSeedChecker.map( ({ valid, word }) => (`<span>${word}</span>`) ).join('')
}
(seed, seedInput) => seed.length === seedInput.length && seed.every((word, i) => word === seedInput[i].word)
)
export { onboardingSelectors }
@ -259,6 +241,8 @@ const initialState = {
},
// array of inputs for when the user re-enters their seed
// object has a word attr and a index attr:
// { word: 'foo', index: 0 }
seedInput: [],
// step where the user decides whether they want a newly created seed or to import an existing one
signupForm: {

Loading…
Cancel
Save