Skip to content

Commit

Permalink
fix(display right country flag on mobile phone change)
Browse files Browse the repository at this point in the history
  • Loading branch information
sixtedemaupeou committed Jun 5, 2018
1 parent a624899 commit fda9f68
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 9 deletions.
1 change: 1 addition & 0 deletions packages/blockchain-wallet-v4-frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
]
},
"dependencies": {
"awesome-phonenumber": "2.2.5",
"base-64": "0.1.0",
"bignumber.js": "5.0.0",
"bip21": "2.0.2",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react'
import styled from 'styled-components'
import { prop, toLower } from 'ramda'

import IntlTelInput from 'react-intl-tel-input'
import 'react-intl-tel-input/dist/libphonenumber.js'
Expand Down Expand Up @@ -34,7 +35,8 @@ const PhoneNumberBox = (field) => {
const handler = (status, value, countryData, number, id) => {
field.input.onChange(number)
}
const countryCode = field.countryCode && field.countryCode.data.toLowerCase()
const upperCountryCode = prop('countryCode', field).getOrElse('US')
const countryCode = upperCountryCode && toLower(upperCountryCode)

return (
<Container>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import React from 'react'
import { connect } from 'react-redux'
import { bindActionCreators, compose } from 'redux'
import { formValueSelector } from 'redux-form'

import { actions, selectors } from 'data'
import { actions } from 'data'
import modalEnhancer from 'providers/ModalEnhancer'
import { getData } from './selectors'
import MobileNumberChange from './template.js'

class MobileNumberChangeContainer extends React.PureComponent {
Expand All @@ -22,14 +22,16 @@ class MobileNumberChangeContainer extends React.PureComponent {
}

render () {
return <MobileNumberChange {...this.props} onSubmit={this.onSubmit} />
const { countryCode, mobileNumber } = this.props
return <MobileNumberChange
{...this.props}
countryCode={countryCode}
mobileNumber={mobileNumber}
onSubmit={this.onSubmit} />
}
}

const mapStateToProps = (state) => ({
mobileNumber: formValueSelector('mobileNumberChange')(state, 'mobileNumber'),
countryCode: selectors.core.settings.getCountryCode(state)
})
const mapStateToProps = (state) => getData(state)

const mapDispatchToProps = (dispatch) => ({
modalActions: bindActionCreators(actions.modals, dispatch),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import PhoneNumber from 'awesome-phonenumber'
import { lift } from 'ramda'

import { formValueSelector } from 'redux-form'
import { selectors } from 'data'

const getCountryCode = (defaultCode, currentNumber) =>
currentNumber ? PhoneNumber(currentNumber).getRegionCode() : defaultCode

export const getData = (state) => {
const currentNumber = selectors.core.settings.getSmsNumber(state)
const defaultCode = selectors.core.settings.getCountryCode(state)
return {
mobileNumber: formValueSelector('mobileNumberChange')(state, 'mobileNumber'),
countryCode: lift(getCountryCode)(defaultCode, currentNumber)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const MobileNumberChange = (props) => {
<Text size='14px' weight={300} style={spacing('pr-5')}>
<FormattedMessage id='modals.mobilenumberchange.mobile' defaultMessage='Mobile number: ' />
</Text>
<Field name='mobileNumber' validate={[validMobileNumber, required]} component={PhoneNumberBox} placeholder='+XX XXX XXX...' countryCode={countryCode} />
<Field name='mobileNumber' validate={[validMobileNumber, required]} component={PhoneNumberBox} countryCode={countryCode} />
</MobileNumber>
</ModalBody>
<ModalFooter align='spaced'>
Expand Down

0 comments on commit fda9f68

Please sign in to comment.