A React phone input component with auto formatting for Material UI.
Uses @mui/material/TextField
for rendering the phone input.
npm install mui-phone-number
yarn add mui-phone-number
import MuiPhoneNumber from 'mui-phone-number'
<MuiPhoneNumber defaultCountry="us" onChange={onPhoneNumberChanged} />
The handler for the onChange
event receives the entered phone number as a string (including the country dial code).
const onPhoneNumberChanged = (phoneNumber, country) => {
console.log(phoneNumber) // +4176 123 45 67
console.log(country) // { name: "Switzerland", dialCode: "41", countryCode: "ch" }
}
Name | Type | Description | Example | Default |
---|---|---|---|---|
excludeCountries | array | country codes to be excluded | ['cu','cw','kz'] | |
onlyCountries | array | country codes to be included | ['cu','cw','kz'] | |
preferredCountries | array | country codes to be at the top | ['cu','cw','kz'] | |
defaultCountry | string | initial country | 'us' | |
inputClass | string | class for input | ||
autoFormat | bool | add whitespace, brackets and dashes if true | true | |
disableDropdown | bool | hide the country selection | false | |
enableLongNumbers | bool | false | ||
Supported TextField props | ||||
See TextField API for possible values https://material-ui.com/api/text-field/ |
Name | Type | Description |
---|---|---|
regions | array/string | to only show codes from selected regions |
Regions |
---|
['america', 'europe', 'asia', 'oceania', 'africa'] |
Subregions |
['north-america', 'south-america', 'central-america', 'carribean', 'european-union', 'ex-ussr', 'middle-east', 'north-africa'] |
Single region (without array notation): 'europe'
<MuiPhoneNumber defaultCountry="it" regions="europe" />
Multiple regions: ['north-america', 'carribean']
<MuiPhoneNumber defaultCountry="ca" regions={['north-america', 'carribean']} />
Name | Type |
---|---|
localization | object |
<MuiPhoneNumber onlyCountries={['de', 'es']} localization={{ Germany: 'Deutschland', Spain: 'España' }} />
onChange | onFocus | onBlur | onClick |
Data | Type | Description |
---|---|---|
value/event | string/object | the event or the phone number |
country data | object | the country object { name, dialCode, country code (iso2 format) } |
To start and open the demo page:
yarn dev
Based on: