From 835be019230edef869ae7d8ac64ce61020a2f6a9 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Fri, 9 Feb 2024 16:38:45 +0300 Subject: [PATCH] 2/9/2 --- lib/constant/links.dart | 2 + lib/controller/auth/register_controller.dart | 2 +- lib/controller/functions/log_out.dart | 4 +- lib/views/auth/captin/logout_captain.dart | 4 +- .../home/map_widget.dart/map_menu_widget.dart | 2 +- .../home/profile/passenger_profile_page.dart | 46 +++++++++++++++++-- lib/views/widgets/my_textField.dart | 5 ++ 7 files changed, 54 insertions(+), 11 deletions(-) diff --git a/lib/constant/links.dart b/lib/constant/links.dart index 1020a94..a528fee 100644 --- a/lib/constant/links.dart +++ b/lib/constant/links.dart @@ -155,6 +155,8 @@ class AppLink { static String login = "$auth/login.php"; static String signUp = "$auth/signup.php"; static String sendVerifyEmail = "$auth/sendVerifyEmail.php"; + static String passengerRemovedAccountEmail = + "$auth/passengerRemovedAccountEmail.php"; static String verifyEmail = "$auth/verifyEmail.php"; //===================Auth Captin============ static String authCaptin = 'https://ride.mobile-app.store/auth/captin'; diff --git a/lib/controller/auth/register_controller.dart b/lib/controller/auth/register_controller.dart index c114bcb..4a5c986 100644 --- a/lib/controller/auth/register_controller.dart +++ b/lib/controller/auth/register_controller.dart @@ -90,7 +90,7 @@ class RegisterController extends GetxController { 'email': emailController.text, 'token': randomNumber.toString(), }).then((value) => print(value)); - Get.to(() => VerifyEmailPage()); + Get.to(() => const VerifyEmailPage()); } } } diff --git a/lib/controller/functions/log_out.dart b/lib/controller/functions/log_out.dart index 306db04..0e39ca8 100644 --- a/lib/controller/functions/log_out.dart +++ b/lib/controller/functions/log_out.dart @@ -8,15 +8,15 @@ import 'package:ride/constant/links.dart'; import 'package:ride/controller/functions/crud.dart'; import 'package:ride/main.dart'; import 'package:ride/onbording_page.dart'; -import 'package:ride/views/lang/languages.dart'; import 'package:ride/views/widgets/elevated_btn.dart'; import 'package:ride/views/widgets/my_textField.dart'; import '../../constant/style.dart'; -class LogOut { +class LogOutController extends GetxController { TextEditingController checkTxtController = TextEditingController(); final formKey = GlobalKey(); + final emailTextController = TextEditingController(); Future deleteMyAccount(String id) async { await CRUD().post(link: AppLink.removeUser, payload: {'id': id}).then( (value) => Get.snackbar('Deleted', 'Your Account is Deleted', diff --git a/lib/views/auth/captin/logout_captain.dart b/lib/views/auth/captin/logout_captain.dart index 2ad5bc6..506b3f7 100644 --- a/lib/views/auth/captin/logout_captain.dart +++ b/lib/views/auth/captin/logout_captain.dart @@ -20,7 +20,7 @@ class LogoutCaptain extends StatelessWidget { MyElevatedButton( title: 'Log Off'.tr, onPressed: () { - LogOut().logOutCaptain(); + LogOutController().logOutCaptain(); }), const SizedBox( height: 30, @@ -28,7 +28,7 @@ class LogoutCaptain extends StatelessWidget { MyElevatedButton( title: 'Delete My Account'.tr, onPressed: () { - LogOut().deletecaptainAccount(); + LogOutController().deletecaptainAccount(); }, kolor: AppColor.redColor, ), diff --git a/lib/views/home/map_widget.dart/map_menu_widget.dart b/lib/views/home/map_widget.dart/map_menu_widget.dart index 92e5f38..2abe343 100644 --- a/lib/views/home/map_widget.dart/map_menu_widget.dart +++ b/lib/views/home/map_widget.dart/map_menu_widget.dart @@ -59,7 +59,7 @@ class MapMenuWidget extends StatelessWidget { IconWidgetMenu( onpressed: () { Get.to( - () => const PassengerProfilePage(), + () => PassengerProfilePage(), transition: Transition.zoom, ); }, diff --git a/lib/views/home/profile/passenger_profile_page.dart b/lib/views/home/profile/passenger_profile_page.dart index 427b1d7..cb3c503 100644 --- a/lib/views/home/profile/passenger_profile_page.dart +++ b/lib/views/home/profile/passenger_profile_page.dart @@ -8,16 +8,20 @@ import 'package:ride/controller/profile/profile_controller.dart'; import 'package:ride/main.dart'; import 'package:ride/views/widgets/elevated_btn.dart'; import 'package:ride/views/widgets/my_scafold.dart'; +import 'package:ride/views/widgets/my_textField.dart'; import 'package:ride/views/widgets/mycircular.dart'; +import '../../../constant/links.dart'; +import '../../../controller/functions/crud.dart'; import '../../../controller/functions/log_out.dart'; class PassengerProfilePage extends StatelessWidget { - const PassengerProfilePage({super.key}); - + PassengerProfilePage({super.key}); + LogOutController logOutController = Get.put(LogOutController()); @override Widget build(BuildContext context) { Get.put(ProfileController()); + return MyScafolld( isleading: true, title: 'My Profile'.tr, @@ -192,7 +196,7 @@ class PassengerProfilePage extends StatelessWidget { child: MyElevatedButton( title: 'Sign Out'.tr, onPressed: () { - LogOut().logOutPassenger(); + LogOutController().logOutPassenger(); }), ), Positioned( @@ -202,8 +206,40 @@ class PassengerProfilePage extends StatelessWidget { child: MyElevatedButton( title: 'Delete My Account'.tr, onPressed: () { - LogOut() - .deleteMyAccount(box.read(BoxName.passengerID).toString()); + Get.defaultDialog( + title: 'Are you sure to delete your account?'.tr, + content: GetBuilder( + builder: (logOutController) { + return Form( + child: MyTextForm( + controller: logOutController.emailTextController, + label: 'Type your Email'.tr, + hint: 'Type your Email'.tr, + type: TextInputType.emailAddress, + ), + ); + }), + confirm: MyElevatedButton( + title: 'Delete My Account'.tr, + onPressed: () async { + if (logOutController.formKey.currentState! + .validate()) { + LogOutController().deleteMyAccount( + box.read(BoxName.passengerID).toString()); + await CRUD().post( + link: AppLink.passengerRemovedAccountEmail, + payload: { + 'email': box.read(BoxName.email).text, + }); + } + }), + cancel: MyElevatedButton( + title: 'No I want'.tr, + onPressed: () { + logOutController.emailTextController.clear(); + logOutController.update(); + Get.back(); + })); }), ) ], diff --git a/lib/views/widgets/my_textField.dart b/lib/views/widgets/my_textField.dart index 0c56d79..ac4f39a 100644 --- a/lib/views/widgets/my_textField.dart +++ b/lib/views/widgets/my_textField.dart @@ -44,6 +44,11 @@ class MyTextForm extends StatelessWidget { if (value!.isEmpty) { return 'Please enter $label.'.tr; } + if (type == TextInputType.emailAddress) { + return 'Please enter Valid email.'.tr; + } else if (type == TextInputType.phone) { + return 'Please enter Valid Phone.'.tr; + } return null; }, ),