0 purchases
country code picker packet
Intl Phone Number Input #
A simple and customizable flutter package for inputting phone number in intl / international format uses Google's libphonenumber
CustomDecoration
CustomBorder
Default
Web
What's new #
Updated libphonenumber and PhoneNumberToCarrierMapper on Android
Removed dependency on libphonenumber
Switch from libphonenumber-iOS to PhoneNumberKit on iOS
Update libphonenumber.js file
Depreciating getNameForNumber in future updates
Features #
Web support.
Support for RTL languages
Selector mode dropdown, bottom sheet and dialog
As You Type Formatter: formats inputs to its selected international format
Get Region Info with PhoneNumber.getRegionInfoFromPhoneNumber(String phoneNumber, [String isoCode]);
Format PhoneNumber with PhoneNumber.getParsableNumber(String phoneNumber, String isoCode) or PhoneNumber Reference.parseNumber()
Custom list of countries e.g. ['NG', 'GH', 'BJ' 'TG', 'CI']
String phoneNumber = '+234 500 500 5005';
PhoneNumber number = await PhoneNumber.getRegionInfoFromPhoneNumber(phoneNumber);
String parsableNumber = number.parseNumber();
`controller reference`.text = parsableNumber
copied to clipboard
Web Support #
In your app directory, edit web/index.html to add the following
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
...
<script src="assets/packages/libphonenumber_plugin/js/libphonenumber.js"></script>
<script src="assets/packages/libphonenumber_plugin/js/stringbuffer.js"></script>
...
<script src="main.dart.js" type="application/javascript"></script>
</body>
</html>
copied to clipboard
Or checkout /example folder from Github.
Note #
PhoneNumber.getRegionInfoFromPhoneNumber(String phoneNumber, [String isoCode])
copied to clipboard
Could throw an Exception if the phoneNumber isn't recognised its a good pattern to pass the country's isoCode or have '+' at the beginning of the string
isoCode could be null if PhoneNumber is not recognised
Usage #
Constructors #
s/n
Constructor
1
InternationalPhoneNumberInput
Available Parameters #
InternationalPhoneNumberInput({
Key key,
this.selectorConfig = const SelectorConfig(),
@required this.onInputChanged,
this.onInputValidated,
this.onSubmit,
this.onFieldSubmitted,
this.validator,
this.onSaved,
this.textFieldController,
this.keyboardAction,
this.keyboardType = TextInputType.phone,
this.initialValue,
this.hintText = 'Phone number',
this.errorMessage = 'Invalid phone number',
this.selectorButtonOnErrorPadding = 24,
this.spaceBetweenSelectorAndTextField = 12,
this.maxLength = 15,
this.isEnabled = true,
this.formatInput = true,
this.autoFocus = false,
this.autoFocusSearch = false,
this.autoValidateMode = AutovalidateMode.disabled,
this.ignoreBlank = false,
this.countrySelectorScrollControlled = true,
this.locale,
this.textStyle,
this.selectorTextStyle,
this.inputBorder,
this.inputDecoration,
this.searchBoxDecoration,
this.textAlign = TextAlign.start,
this.textAlignVertical = TextAlignVertical.center,
this.scrollPadding = const EdgeInsets.all(20.0),
this.focusNode,
this.cursorColor,
this.autofillHints,
this.countries
});
copied to clipboard
SelectorConfig({
this.selectorType = PhoneInputSelectorType.DROPDOWN,
this.showFlags = true,
this.useEmoji = false,
this.backgroundColor,
this.countryComparator,
this.setSelectorButtonAsPrefixIcon = false,
this.useBottomSheetSafeArea = false,
});
copied to clipboard
Parameter
Datatype
Initial Value
onInputChanged
function(PhoneNumber)
null
onSaved
function(PhoneNumber)
null
onInputValidated
function(bool)
null
focusNode
FocusNode
null
textFieldController
TextEditingController
TextEditingController()
onSubmit
Function()
null
keyboardAction
TextInputAction
null
keyboardType
TextInputType
TextInputType.phone
countries
List
null
textStyle
TextStyle
null
selectorTextStyle
TextStyle
null
inputBorder
InputBorder
null
inputDecoration
InputDecoration
null
initialValue
PhoneNumber
null
hintText
String
Phone Number
selectorButtonOnErrorPadding
double
24
spaceBetweenSelectorAndTextField
double
12
maxLength
integer
15
isEnabled
boolean
true
autoFocus
boolean
false
autoValidateMode
AutoValidateMode
AutoValidateMode.disabled
formatInput
boolean
true
errorMessage
String
Invalid phone number
selectorConfig
SelectorConfig
SelectorConfig()
ignoreBlank
boolean
false
locale
String
null
searchBoxDecoration
InputDecoration
null
textAlign
TextAlign
TextAlign.start
textAlignVertical
TextAlignVertical
TextAlignVertical.center
scrollPadding
EdgeInsets
EdgeInsets.all(20.0)
countrySelectorScrollControlled
boolean
true
cursorColor
String \
null
autofillHints
Iterable
null
Selector Types #
DROPDOWN
BOTTOMSHEET
DIALOG
Testing #
Widget Key parameters and Helper classes are now available for integration testing check out this example 🎯 Integration Testing Example
Contributions #
If you encounter any problem or the library is missing a feature feel free to open an issue. Feel free to fork, improve the package and make pull request.
Co-contributors #
Interested in becoming a co-contributors checkout this link for more info discussions/201
Contributors #
Made with contributors-img.
Dependencies #
libphonenumber
equatable
Credits #
A special thanks to niinyarko
FAQ #
For discussions and frequent question and concerns, check here
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.