import 'dart:convert'; import 'package:car_customer_app/api/shared_prefrence.dart'; import 'package:car_customer_app/api/user_api_client.dart'; import 'package:car_customer_app/classes/utils.dart'; import 'package:car_customer_app/config/constants.dart'; import 'package:car_customer_app/config/routes.dart'; import 'package:car_customer_app/models/user/user.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/extensions/int_extensions.dart'; import 'package:car_customer_app/extensions/string_extensions.dart'; import 'package:car_customer_app/extensions/widget_extensions.dart'; import 'package:car_customer_app/widgets/dialog/otp_dialog.dart'; import 'package:car_customer_app/widgets/txt_field.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart'; class LoginMethodSelectionPage extends StatelessWidget { String userToken; LoginMethodSelectionPage(this.userToken); @override Widget build(BuildContext context) { return Scaffold( appBar: appBar(title: "Log In"), body: Container( width: double.infinity, height: double.infinity, padding: EdgeInsets.all(40), child: Column( children: [ "Login Selection".toText24(), mFlex(2), Row( children: [ Expanded( child: ShowImageButton( onClick: () { performBasicOtp(context); }, title: 'Finger Print', icon: icons + "ic_fingerprint.png", ), ), 20.width, Expanded( child: ShowImageButton( onClick: () { performBasicOtp(context); }, title: 'Face Recognition', icon: icons + "ic_face_id.png", ), ), ], ), 40.height, Row( children: [ Expanded( child: ShowImageButton( onClick: () { performBasicOtp(context); }, title: 'With SMS', icon: icons + "ic_sms.png", ), ), 20.width, Expanded( child: ShowImageButton( onClick: () { // navigateWithName(context, AppRoutes.dashboard); performBasicOtp(context); }, title: 'With Whatsapp', icon: icons + "ic_whatsapp.png", ), ), ], ), mFlex(10), ], ), ), ); } Future performBasicOtp(BuildContext context) async { Utils.showLoading(context); Response response = await UserApiClent().login_V2_OTP(userToken, "1"); Utils.hideLoading(context); if (response.statusCode == 200) { String userToken = jsonDecode(response.body)["token"]; showMDialog(context, child: OtpDialog( onClick: (String code) async { pop(context); Utils.showLoading(context); Response response2 = await UserApiClent().login_V2_OTPVerify(userToken, code); Utils.hideLoading(context); if (response2.statusCode == 200) { User user = User.fromMap(jsonDecode(response2.body)); SharedPrefManager.setUserToken(user.accessToken ?? ""); SharedPrefManager.setUserId(user.userInfo!.userId ?? ""); navigateWithName(context, AppRoutes.dashboard); } else { Utils.showToast("Something went wrong"); } }, )); } else { String res = jsonDecode(response.body)["errors"][0] ?? ""; Utils.showToast(res); } } }