Merge remote-tracking branch 'origin/fatima' into fatima

# Conflicts:
#	lib/api/client/user_api_client.dart
#	lib/classes/consts.dart
fatima
Fatimah Alshammari 4 years ago
commit 4f17e7f22b

@ -1,6 +1,7 @@
import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/api/client/user_api_client.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/models/m_response.dart';
import 'package:car_provider_app/models/user/basic_otp.dart'; import 'package:car_provider_app/models/user/basic_otp.dart';
import 'package:car_provider_app/models/user/register_user.dart'; import 'package:car_provider_app/models/user/register_user.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
@ -28,6 +29,7 @@ class CompleteProfilePage extends StatefulWidget {
class _CompleteProfilePageState extends State<CompleteProfilePage> { class _CompleteProfilePageState extends State<CompleteProfilePage> {
String? firstName = "", lastName = "", email = "", password = "", confirmPassword = ""; String? firstName = "", lastName = "", email = "", password = "", confirmPassword = "";
bool isChecked = false; bool isChecked = false;
@override @override
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
@ -68,6 +70,8 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
TxtField( TxtField(
hint: "Email", hint: "Email",
value: email, value: email,
isButtonEnable: email!.length > 0 ? true : false,
buttonTitle: "Verify",
onChanged: (v) { onChanged: (v) {
email = v; email = v;
}, },
@ -117,8 +121,8 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
), ),
), ),
); );
} }
Widget buildCheckbox() => Checkbox( Widget buildCheckbox() => Checkbox(
value: isChecked, value: isChecked,
activeColor: Colors.blue, activeColor: Colors.blue,
@ -181,6 +185,12 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
return regExp.hasMatch(value); return regExp.hasMatch(value);
} }
bool isEmail(String em) {
String p = r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$';
RegExp regExp = new RegExp(p);
return regExp.hasMatch(em);
}
bool validation() { bool validation() {
bool isValid = true; bool isValid = true;
if (firstName!.isEmpty) { if (firstName!.isEmpty) {

@ -22,13 +22,15 @@ class OtpDialog extends StatelessWidget {
return Container( return Container(
color: Colors.white, color: Colors.white,
padding: EdgeInsets.all(24), padding: EdgeInsets.all(24),
width: double.infinity,
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
"Please insert OTP Code".toText24(), "Please insert OTP Code".toText24(),
20.height, 20.height,
OTPWidget( Center(
child: OTPWidget(
autoFocus: true, autoFocus: true,
controller: _pinPutController, controller: _pinPutController,
defaultBorderColor: const Color(0xffD8D8D8), defaultBorderColor: const Color(0xffD8D8D8),
@ -37,14 +39,15 @@ class OtpDialog extends StatelessWidget {
pinBoxColor: Colors.white, pinBoxColor: Colors.white,
onDone: (code) => _onOtpCallBack(code, null), onDone: (code) => _onOtpCallBack(code, null),
textBorderColor: const Color(0xffD8D8D8), textBorderColor: const Color(0xffD8D8D8),
pinBoxWidth: 60, pinBoxWidth: 48,
pinBoxHeight: 60, pinBoxHeight: 48,
pinTextStyle: const TextStyle(fontSize: 24.0, color: MyColors.darkTextColor), pinTextStyle: const TextStyle(fontSize: 24.0, color: MyColors.darkTextColor),
pinTextAnimatedSwitcherTransition: ProvidedPinBoxTextAnimation.scalingTransition, pinTextAnimatedSwitcherTransition: ProvidedPinBoxTextAnimation.scalingTransition,
pinTextAnimatedSwitcherDuration: const Duration(milliseconds: 300), pinTextAnimatedSwitcherDuration: const Duration(milliseconds: 300),
pinBoxRadius: 10, pinBoxRadius: 8,
keyboardType: TextInputType.number, keyboardType: TextInputType.number,
), ),
),
// Row( // Row(
// children: [ // children: [
// Expanded( // Expanded(

@ -16,7 +16,7 @@ class TxtField extends StatelessWidget {
bool isNeedClickAll; bool isNeedClickAll;
bool isButtonEnable; bool isButtonEnable;
double? elevation; double? elevation;
Function? onTap; VoidCallback? onTap;
String? buttonTitle; String? buttonTitle;
int? maxLines; int? maxLines;
bool isSidePaddingZero; bool isSidePaddingZero;
@ -47,6 +47,7 @@ class TxtField extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
controller.text = value ?? ""; controller.text = value ?? "";
controller.selection = TextSelection.fromPosition(TextPosition(offset: controller.text.length));
return InkWell( return InkWell(
onTap: isNeedClickAll == false onTap: isNeedClickAll == false
? null ? null
@ -130,7 +131,7 @@ class TxtField extends StatelessWidget {
if (isButtonEnable) if (isButtonEnable)
Material( Material(
child: InkWell( child: InkWell(
onTap: () {}, onTap: onTap,
customBorder: inkWellCorner(), customBorder: inkWellCorner(),
child: Container( child: Container(
height: 55, height: 55,

Loading…
Cancel
Save