|
|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
import 'package:car_provider_app/api/client/user_api_client.dart';
|
|
|
|
|
import 'package:car_provider_app/classes/utils.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/register_user.dart';
|
|
|
|
|
import 'package:car_provider_app/utils/navigator.dart';
|
|
|
|
|
@ -28,6 +29,7 @@ class CompleteProfilePage extends StatefulWidget {
|
|
|
|
|
class _CompleteProfilePageState extends State<CompleteProfilePage> {
|
|
|
|
|
String? firstName = "", lastName = "", email = "", password = "", confirmPassword = "";
|
|
|
|
|
bool isChecked = false;
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
// TODO: implement initState
|
|
|
|
|
@ -68,6 +70,8 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
|
|
|
|
|
TxtField(
|
|
|
|
|
hint: "Email",
|
|
|
|
|
value: email,
|
|
|
|
|
isButtonEnable: email!.length > 0 ? true : false,
|
|
|
|
|
buttonTitle: "Verify",
|
|
|
|
|
onChanged: (v) {
|
|
|
|
|
email = v;
|
|
|
|
|
},
|
|
|
|
|
@ -108,7 +112,7 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
|
|
|
|
|
title: "Continue",
|
|
|
|
|
width: double.infinity,
|
|
|
|
|
onPressed: () {
|
|
|
|
|
if(validation()) performCompleteProfile();
|
|
|
|
|
if (validation()) performCompleteProfile();
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
@ -117,17 +121,17 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Widget buildCheckbox() => Checkbox(
|
|
|
|
|
value: isChecked,
|
|
|
|
|
activeColor: Colors.blue,
|
|
|
|
|
onChanged: (value){
|
|
|
|
|
setState(() {
|
|
|
|
|
isChecked = value!;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
value: isChecked,
|
|
|
|
|
activeColor: Colors.blue,
|
|
|
|
|
onChanged: (value) {
|
|
|
|
|
setState(() {
|
|
|
|
|
isChecked = value!;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Future<void> performCompleteProfile() async {
|
|
|
|
|
// if(validateStructure(password??"")){
|
|
|
|
|
@ -154,33 +158,39 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
Future<void> performCompleteProfile() async {
|
|
|
|
|
if (validateStructure(password ?? "")) {
|
|
|
|
|
if (password == confirmPassword) {
|
|
|
|
|
print(widget.user.data!.userId ?? "userId");
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
RegisterUser user = await UserApiClent().basicComplete(widget.user.data?.userId ?? "", firstName!, lastName!, email!, password!);
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
if (user.messageStatus == 1) {
|
|
|
|
|
Utils.showToast("Successfully Registered, Please login once");
|
|
|
|
|
pop(context);
|
|
|
|
|
// navigateReplaceWithName(context, AppRoutes.dashboard,arguments: user);
|
|
|
|
|
} else {
|
|
|
|
|
Utils.showToast(user.message ?? "");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
Utils.showToast("Please enter same password");
|
|
|
|
|
}
|
|
|
|
|
if (validateStructure(password ?? "")) {
|
|
|
|
|
if (password == confirmPassword) {
|
|
|
|
|
print(widget.user.data!.userId ?? "userId");
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
RegisterUser user = await UserApiClent().basicComplete(widget.user.data?.userId ?? "", firstName!, lastName!, email!, password!);
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
if (user.messageStatus == 1) {
|
|
|
|
|
Utils.showToast("Successfully Registered, Please login once");
|
|
|
|
|
pop(context);
|
|
|
|
|
// navigateReplaceWithName(context, AppRoutes.dashboard,arguments: user);
|
|
|
|
|
} else {
|
|
|
|
|
Utils.showToast("Password Should contains Character, Number, Capital and small letters");
|
|
|
|
|
Utils.showToast(user.message ?? "");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
Utils.showToast("Please enter same password");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
Utils.showToast("Password Should contains Character, Number, Capital and small letters");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool validateStructure(String value){
|
|
|
|
|
String pattern = r'^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[!@#\$&*~]).{6,}$';
|
|
|
|
|
bool validateStructure(String value) {
|
|
|
|
|
String pattern = r'^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[!@#\$&*~]).{6,}$';
|
|
|
|
|
RegExp regExp = new RegExp(pattern);
|
|
|
|
|
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 isValid = true;
|
|
|
|
|
if (firstName!.isEmpty) {
|
|
|
|
|
@ -192,7 +202,7 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
|
|
|
|
|
} else if (password!.isEmpty) {
|
|
|
|
|
Utils.showToast("Password is mandatory");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}else if (!isChecked) {
|
|
|
|
|
} else if (!isChecked) {
|
|
|
|
|
Utils.showToast("Please accept terms");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|