Skip to content

Commit

Permalink
Fix phone verification and its colors
Browse files Browse the repository at this point in the history
  • Loading branch information
AhmedHanafy725 committed Jun 20, 2024
1 parent 2bbfebf commit 7083b2b
Showing 1 changed file with 27 additions and 19 deletions.
46 changes: 27 additions & 19 deletions app/lib/widgets/phone_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter_pkid/flutter_pkid.dart';
import 'package:http/http.dart';
import 'package:intl_phone_field/countries.dart';
import 'package:intl_phone_field/intl_phone_field.dart';
import 'package:intl_phone_field/phone_number.dart';
import 'package:threebotlogin/helpers/globals.dart';
Expand Down Expand Up @@ -60,11 +61,14 @@ class PhoneAlertDialog extends StatefulWidget {
class PhoneAlertDialogState extends State<PhoneAlertDialog> {
bool valid = false;
String verificationPhoneNumber = '';
Country _country = countries.firstWhere((element) => element.code == "US");

@override
void initState() {
valid = false;
verificationPhoneNumber = '';
_country = countries
.firstWhere((element) => element.code == widget.defaultCountryCode);
super.initState();
}

Expand All @@ -88,20 +92,32 @@ class PhoneAlertDialogState extends State<PhoneAlertDialog> {
borderSide: BorderSide(),
),
),
style: Theme.of(context).textTheme.bodyMedium!.copyWith(
color: Theme.of(context).colorScheme.onBackground),
dropdownTextStyle: Theme.of(context)
.textTheme
.bodyMedium!
.copyWith(
color: Theme.of(context).colorScheme.onBackground),
onChanged: (phone) {
PhoneNumber p = phone;
RegExp regExp = RegExp(
r'^(\+[0-9]{1,3}|0)[0-9]{3}( ){0,1}[0-9]{7,8}\b$',
caseSensitive: false,
multiLine: false,
);

setState(() {
valid = regExp
.hasMatch(p.completeNumber.replaceAll('\n', ''));
verificationPhoneNumber = p.completeNumber;
if (phone.number.length >= _country.minLength &&
phone.number.length <= _country.maxLength) {
valid = true;
verificationPhoneNumber = p.completeNumber;
} else {
valid = false;
}
});
},
onCountryChanged: (country) {
if (_country != country) {
valid = false;
}
_country = country;
setState(() {});
},
),
),
),
Expand All @@ -116,16 +132,8 @@ class PhoneAlertDialogState extends State<PhoneAlertDialog> {
onPressed: () {
Navigator.pop(context);
}),
TextButton(
style: ButtonStyle(
foregroundColor: valid
? MaterialStateProperty.all(Theme.of(context).primaryColor)
: MaterialStateProperty.all(Colors.grey),
),
onPressed: verifyButton,
child: valid
? const Text('Add', style: TextStyle(color: Colors.white))
: const Text('Ok', style: TextStyle(color: Colors.black)))
if (valid)
TextButton(onPressed: verifyButton, child: const Text('Add'))
]);
}

Expand Down

0 comments on commit 7083b2b

Please sign in to comment.