verify country code we get from geo
This commit is contained in:
@@ -3,14 +3,15 @@ import {Image} from 'expo-image'
|
||||
import {msg} from '@lingui/macro'
|
||||
import {useLingui} from '@lingui/react'
|
||||
|
||||
import {getCountriesWithTelephoneCodes} from '#/lib/international-telephone-codes'
|
||||
import {
|
||||
getCountriesWithTelephoneCodes,
|
||||
getDefaultCountry,
|
||||
} from '#/lib/international-telephone-codes'
|
||||
import {isWeb} from '#/platform/detection'
|
||||
import {useGeolocationStatus} from '#/state/geolocation'
|
||||
import {atoms as a, web} from '#/alf'
|
||||
import * as Select from '#/components/Select'
|
||||
|
||||
export const DEFAULT_PHONE_COUNTRY = 'US'
|
||||
|
||||
/**
|
||||
* Country picker for a phone number input
|
||||
*
|
||||
@@ -27,7 +28,9 @@ export function InternationalPhoneCodeSelect({
|
||||
const {_, i18n} = useLingui()
|
||||
const {location} = useGeolocationStatus()
|
||||
|
||||
const defaultCountry = location?.countryCode || DEFAULT_PHONE_COUNTRY
|
||||
const defaultCountry = useMemo(() => {
|
||||
return getDefaultCountry(location)
|
||||
}, [location])
|
||||
|
||||
const items = useMemo(() => {
|
||||
const telCountryMap = getCountriesWithTelephoneCodes(i18n)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {type I18n} from '@lingui/core'
|
||||
import {type I18n, i18n} from '@lingui/core'
|
||||
import {msg} from '@lingui/macro'
|
||||
|
||||
export function getCountriesWithTelephoneCodes(i18n: I18n) {
|
||||
@@ -1505,3 +1505,17 @@ export function getCountriesWithTelephoneCodes(i18n: I18n) {
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
const DEFAULT_PHONE_COUNTRY = 'US'
|
||||
|
||||
export function getDefaultCountry(location?: {countryCode?: string}) {
|
||||
const supportedCountries = Object.keys(getCountriesWithTelephoneCodes(i18n)) // ok to use default i18n here because we don't use the name
|
||||
|
||||
if (
|
||||
location?.countryCode &&
|
||||
supportedCountries.includes(location.countryCode.toUpperCase())
|
||||
) {
|
||||
return location.countryCode.toUpperCase()
|
||||
}
|
||||
return DEFAULT_PHONE_COUNTRY
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user