diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a623b2..4fd03c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,77 +1,78 @@ -## 0.0.1 - -Initial release - -## 0.0.2 - -Add favorite countries option. - -## 0.1.0 - -Removed flags in iOS because they show up weirdly. - -## 0.1.1 - -Tested with dart 2 - -## 0.1.2 - -Favorite and initial selection can be one of code or dial code - -## 0.1.3 - -Favorite and initial selection can be one of code or dial code - -## 0.2.0 - -Now onChanged has a full CElement as argument and not only a string. (issue #4) - -## 0.2.1 - -Added some documentation - -## 0.2.2 - -Added textStyle and padding as widget parameters - -## 1.0.0 - -Use png flags instead of a font - -## 1.0.1 - -Correct README and update screenshots - -## 1.0.2 - -Update framework compatiblity - -## 1.0.3 - -Update flags dimension to reduce application size - -## 1.0.4 - -Update country name with translated version - -## 1.1.0 - -Changed CElement with CountryCode and fix error on favorite null - -## 1.1.1 - -Update allowed dart version and modify description - -## 1.1.4 - -Add possibility to show only country name - -## 1.1.5 - -OnlyCountrymode now also displays only the country on Textwidget when closed. +## 1.1.8 +- Added Ability to render custom Widget instead of package one's, through [customWidget] param [@Saifallak](https://github.com/Saifallak). ## 1.1.7 Flag is now optional. Fix bug on initState. +## 1.1.5 +OnlyCountrymode now also displays only the country on Textwidget when closed. + +## 1.1.4 + +Add possibility to show only country name + +## 1.1.1 + +Update allowed dart version and modify description + +## 1.1.0 + +Changed CElement with CountryCode and fix error on favorite null + +## 1.0.4 + +Update country name with translated version + +## 1.0.3 + +Update flags dimension to reduce application size + +## 1.0.2 + +Update framework compatiblity + +## 1.0.1 + +Correct README and update screenshots + +## 1.0.0 + +Use png flags instead of a font + +## 0.2.2 + +Added textStyle and padding as widget parameters + +## 0.2.1 + +Added some documentation + +## 0.2.0 + +Now onChanged has a full CElement as argument and not only a string. (issue #4) + +## 0.1.3 + +Favorite and initial selection can be one of code or dial code + +## 0.1.2 + +Favorite and initial selection can be one of code or dial code + +## 0.1.1 + +Tested with dart 2 + +## 0.1.0 + +Removed flags in iOS because they show up weirdly. + +## 0.0.2 + +Add favorite countries option. + +## 0.0.1 + +Initial release diff --git a/lib/country_code_picker.dart b/lib/country_code_picker.dart index 1dad346..97e9b46 100644 --- a/lib/country_code_picker.dart +++ b/lib/country_code_picker.dart @@ -19,6 +19,7 @@ class CountryCodePicker extends StatefulWidget { final InputDecoration searchDecoration; final TextStyle searchStyle; final WidgetBuilder emptySearchBuilder; + final Widget customWidget; /// shows the name of the country instead of the dialcode final bool showOnlyCountryWhenClosed; @@ -50,7 +51,8 @@ class CountryCodePicker extends StatefulWidget { this.emptySearchBuilder, this.showOnlyCountryWhenClosed = false, this.alignLeft = false, - this.showFlag = true + this.showFlag = true, + this.customWidget, }); @override @@ -84,25 +86,37 @@ class _CountryCodePickerState extends State { _CountryCodePickerState(this.elements); @override - Widget build(BuildContext context) => FlatButton( + Widget build(BuildContext context) { + Widget _widget; + if (widget.customWidget != null) + _widget = InkWell( + onTap: _showSelectionDialog, + child: widget.customWidget, + ); + else { + _widget = FlatButton( + padding: widget.padding, + onPressed: _showSelectionDialog, child: Flex( direction: Axis.horizontal, mainAxisSize: MainAxisSize.min, children: [ - widget.showFlag ? Flexible( - flex: widget.alignLeft ? 0 : 1, - fit: widget.alignLeft ? FlexFit.tight : FlexFit.loose, - child: Padding( - padding: widget.alignLeft - ? const EdgeInsets.only(right: 16.0, left: 8.0) - : const EdgeInsets.only(right: 16.0), - child: Image.asset( - selectedItem.flagUri, - package: 'country_code_picker', - width: 32.0, - ), - ), - ) : Container(), + widget.showFlag + ? Flexible( + flex: widget.alignLeft ? 0 : 1, + fit: widget.alignLeft ? FlexFit.tight : FlexFit.loose, + child: Padding( + padding: widget.alignLeft + ? const EdgeInsets.only(right: 16.0, left: 8.0) + : const EdgeInsets.only(right: 16.0), + child: Image.asset( + selectedItem.flagUri, + package: 'country_code_picker', + width: 32.0, + ), + ), + ) + : Container(), Flexible( fit: widget.alignLeft ? FlexFit.tight : FlexFit.loose, child: Text( @@ -114,9 +128,10 @@ class _CountryCodePickerState extends State { ), ], ), - padding: widget.padding, - onPressed: _showSelectionDialog, ); + } + return _widget; + } @override initState() { @@ -146,16 +161,12 @@ class _CountryCodePickerState extends State { void _showSelectionDialog() { showDialog( context: context, - builder: (_) => - SelectionDialog( - elements, - favoriteElements, + builder: (_) => SelectionDialog(elements, favoriteElements, showCountryOnly: widget.showCountryOnly, emptySearchBuilder: widget.emptySearchBuilder, searchDecoration: widget.searchDecoration, searchStyle: widget.searchStyle, - showFlag: widget.showFlag - ), + showFlag: widget.showFlag), ).then((e) { if (e != null) { setState(() { diff --git a/pubspec.yaml b/pubspec.yaml index afb9ac6..257d5c2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: country_code_picker description: A flutter package for showing a country code selector. In addition it gives the possibility to select a list of favorites countries, as well as to search using a simple searchbox -version: 1.1.7 +version: 1.1.8 author: Salvatore-Giordano homepage: https://github.com/Salvatore-Giordano/CountryCodePicker