diff --git a/lib/config/routes.dart b/lib/config/routes.dart index 4938085..075d6ac 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -1,4 +1,5 @@ import 'package:car_customer_app/pages/dashboard/dashboard_page.dart'; +import 'package:car_customer_app/pages/user/complete_profile_page.dart'; import 'package:car_customer_app/pages/user/forget_password_page.dart'; import 'package:car_customer_app/pages/user/login_verification_page.dart'; import 'package:car_customer_app/pages/user/login_verify_account_page.dart'; @@ -16,6 +17,7 @@ class AppRoutes { static final String forgetPassword = "/forgetPassword"; static final String loginVerification = "/loginVerification"; static final String dashboard = "/dashboard"; + static final String completeProfile = "/completeProfile"; @@ -30,5 +32,6 @@ class AppRoutes { forgetPassword: (context) => ForgetPasswordPage(), loginVerification: (context) => LoginVerificationPage(), dashboard: (context) => DashboardPage(), + completeProfile: (context) => CompleteProfilePage(), }; } diff --git a/lib/pages/user/complete_profile_page.dart b/lib/pages/user/complete_profile_page.dart new file mode 100644 index 0000000..f76f266 --- /dev/null +++ b/lib/pages/user/complete_profile_page.dart @@ -0,0 +1,67 @@ +import 'package:car_customer_app/utils/utils.dart'; +import 'package:car_customer_app/widgets/app_bar.dart'; +import 'package:car_customer_app/widgets/show_fill_button.dart'; +import 'package:car_customer_app/widgets/txt.dart'; +import 'package:car_customer_app/widgets/txt_field.dart'; +import 'package:flutter/material.dart'; + +class CompleteProfilePage extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: appBar(title: "Sign Up"), + body: Container( + width: double.infinity, + height: double.infinity, + child: SingleChildScrollView( + child: Padding( + padding: EdgeInsets.all(40), + child: Column( + children: [ + Txt( + "Complete Profile", + txtType: TxtType.heading3, + ), + mHeight(12), + TxtField( + hint: "First Name", + ), + mHeight(12), + TxtField( + hint: "Surname", + ), + mHeight(12), + TxtField( + hint: "Email", + ), + mHeight(12), + TxtField( + hint: "Create Password", + ), + mHeight(12), + TxtField( + hint: "Confirm Password", + ), + mHeight(12), + TxtField( + hint: "Phone Number", + ), + mHeight(50), + Txt( + "By creating an account you agree to our Terms of Service and Privacy Policy", + textAlign: TextAlign.center, + ), + mHeight(16), + ShowFillButton( + title: "Continue", + width: double.infinity, + onPressed: () {}, + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/pages/user/forget_password_page.dart b/lib/pages/user/forget_password_page.dart index 7d01a7e..01db9aa 100644 --- a/lib/pages/user/forget_password_page.dart +++ b/lib/pages/user/forget_password_page.dart @@ -1,5 +1,7 @@ import 'package:car_customer_app/utils/utils.dart'; import 'package:car_customer_app/widgets/app_bar.dart'; +import 'package:car_customer_app/widgets/dialog/dialogs.dart'; +import 'package:car_customer_app/widgets/dialog/message_dialog.dart'; import 'package:car_customer_app/widgets/show_fill_button.dart'; import 'package:car_customer_app/widgets/txt.dart'; import 'package:car_customer_app/widgets/txt_field.dart'; @@ -31,7 +33,14 @@ class ForgetPasswordPage extends StatelessWidget { ShowFillButton( title: "Continue", width: double.infinity, - onPressed: () {}, + onPressed: () { + showMDialog( + context, + child: MessageDialog( + title: "New Password sent used", + ), + ); + }, ), ], ), diff --git a/lib/pages/user/login_verification_page.dart b/lib/pages/user/login_verification_page.dart index 7642ecd..54b469a 100644 --- a/lib/pages/user/login_verification_page.dart +++ b/lib/pages/user/login_verification_page.dart @@ -4,6 +4,8 @@ import 'package:car_customer_app/utils/navigator.dart'; import 'package:car_customer_app/utils/utils.dart'; import 'package:car_customer_app/widgets/app_bar.dart'; import 'package:car_customer_app/widgets/button/show_image_button.dart'; +import 'package:car_customer_app/widgets/dialog/dialogs.dart'; +import 'package:car_customer_app/widgets/dialog/message_dialog.dart'; import 'package:car_customer_app/widgets/txt.dart'; import 'package:car_customer_app/widgets/txt_field.dart'; import 'package:flutter/material.dart'; @@ -29,7 +31,16 @@ class LoginVerificationPage extends StatelessWidget { Expanded( child: ShowImageButton( onClick: () { - navigateWithName(context, AppRoutes.dashboard); + showMDialog( + context, + child: MessageDialog( + title: "Account Verified", + onClick: () { + pop(context); + navigateWithName(context, AppRoutes.dashboard); + }, + ), + ); }, title: 'Finger Print', icon: icons + "ic_fingerprint.png", diff --git a/lib/pages/user/login_verify_account_page.dart b/lib/pages/user/login_verify_account_page.dart index 8e5e4d3..301623e 100644 --- a/lib/pages/user/login_verify_account_page.dart +++ b/lib/pages/user/login_verify_account_page.dart @@ -1,7 +1,12 @@ import 'package:car_customer_app/config/constants.dart'; +import 'package:car_customer_app/config/routes.dart'; +import 'package:car_customer_app/utils/navigator.dart'; import 'package:car_customer_app/utils/utils.dart'; import 'package:car_customer_app/widgets/app_bar.dart'; import 'package:car_customer_app/widgets/button/show_image_button.dart'; +import 'package:car_customer_app/widgets/dialog/dialogs.dart'; +import 'package:car_customer_app/widgets/dialog/message_dialog.dart'; +import 'package:car_customer_app/widgets/dialog/otp_dialog.dart'; import 'package:car_customer_app/widgets/txt.dart'; import 'package:car_customer_app/widgets/txt_field.dart'; import 'package:flutter/material.dart'; @@ -30,7 +35,24 @@ class LoginVerifyAccountPage extends StatelessWidget { children: [ Expanded( child: ShowImageButton( - onClick: () {}, + onClick: () { + showMDialog(context, child: OtpDialog( + onClick: () { + pop(context); + delay(300).then( + (value) => showMDialog( + context, + child: MessageDialog( + title: "Phone Number Verified", + onClick: () { + navigateWithName(context, AppRoutes.completeProfile); + }, + ), + ), + ); + }, + )); + }, title: 'With SMS', icon: icons + "ic_sms.png", ), @@ -38,7 +60,24 @@ class LoginVerifyAccountPage extends StatelessWidget { mWidth(20), Expanded( child: ShowImageButton( - onClick: () {}, + onClick: () { + showMDialog(context, child: OtpDialog( + onClick: () { + pop(context); + delay(300).then( + (value) => showMDialog( + context, + child: MessageDialog( + title: "Phone Number Verified", + onClick: () { + navigateWithName(context, AppRoutes.completeProfile); + }, + ), + ), + ); + }, + )); + }, title: 'With Whatsapp', icon: icons + "ic_whatsapp.png", ), diff --git a/lib/widgets/dialog/dialogs.dart b/lib/widgets/dialog/dialogs.dart new file mode 100644 index 0000000..9a5a822 --- /dev/null +++ b/lib/widgets/dialog/dialogs.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; + +void showMDialog( + context, { + Widget? child, +}) async { + return showDialog( + context: context, + barrierDismissible: true, + builder: (context) { + return Dialog( + child: child, + ); + }, + ); +} diff --git a/lib/widgets/dialog/message_dialog.dart b/lib/widgets/dialog/message_dialog.dart new file mode 100644 index 0000000..fd30637 --- /dev/null +++ b/lib/widgets/dialog/message_dialog.dart @@ -0,0 +1,38 @@ +import 'package:car_customer_app/theme/colors.dart'; +import 'package:car_customer_app/utils/navigator.dart'; +import 'package:car_customer_app/utils/utils.dart'; +import 'package:car_customer_app/widgets/show_fill_button.dart'; +import 'package:car_customer_app/widgets/txt.dart'; +import 'package:flutter/material.dart'; + +class MessageDialog extends StatelessWidget { + String? title, buttonTitle; + VoidCallback? onClick; + MessageDialog({this.title, this.buttonTitle,this.onClick}); + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.white, + padding: EdgeInsets.all(30), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Txt( + title ?? "message", + txtType: TxtType.heading3, + ), + mHeight(40), + ShowFillButton( + title: buttonTitle ?? "Continue", + width: double.infinity, + onPressed: () { + onClick!(); + }, + ) + ], + ), + ); + } +} diff --git a/lib/widgets/dialog/otp_dialog.dart b/lib/widgets/dialog/otp_dialog.dart new file mode 100644 index 0000000..b8880e2 --- /dev/null +++ b/lib/widgets/dialog/otp_dialog.dart @@ -0,0 +1,74 @@ +import 'package:car_customer_app/theme/colors.dart'; +import 'package:car_customer_app/utils/navigator.dart'; +import 'package:car_customer_app/utils/utils.dart'; +import 'package:car_customer_app/widgets/show_fill_button.dart'; +import 'package:car_customer_app/widgets/txt.dart'; +import 'package:flutter/material.dart'; + +class OtpDialog extends StatelessWidget { + VoidCallback onClick; + + OtpDialog({required this.onClick}); + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.white, + padding: EdgeInsets.all(30), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Txt( + "Please insert OTP Code", + txtType: TxtType.heading3, + ), + mHeight(20), + Row( + children: [ + Expanded( + child: Container( + width: double.infinity, + height: 60, + color: accentColor.withOpacity(0.3), + ), + ), + mWidth(12), + Expanded( + child: Container( + width: double.infinity, + height: 60, + color: accentColor.withOpacity(0.3), + ), + ), + mWidth(12), + Expanded( + child: Container( + width: double.infinity, + height: 60, + color: accentColor.withOpacity(0.3), + ), + ), + mWidth(12), + Expanded( + child: Container( + width: double.infinity, + height: 60, + color: accentColor.withOpacity(0.3), + ), + ), + ], + ), + mHeight(40), + ShowFillButton( + title: "Check Code", + width: double.infinity, + onPressed: () { + onClick(); + }, + ) + ], + ), + ); + } +}