implement provider complete phase 1

merge-requests/4/head
mirza.shafique 3 years ago
parent a5552b3ef0
commit 86d352196d

@ -146,6 +146,23 @@
"upcoming_appointment": "الموعد القادم",
"my_service_providers": "مزودي الخدمة الجدد",
"appointment_details": "تفاصيل الموعد",
"no_city_available": "لا توجد مدينة متاحة لهذا البلد",
"branch_created": "تم إنشاء الفرع بنجاح",
"branch_updated": "تم تحديث الفرع بنجاح",
"branch_deleted": "تم حذف الفرع بنجاح",
"dashboard_main": "لوحة القيادة / الصفحة الرئيسية",
"logo_brand": "الشعار / العلامة التجارية",
"remove": "إزالة",
"no_branch": "لم يتم إضافة فرع حتى الآن",
"login_once": "الرجاء تسجيل الدخول مرة واحدة",
"defineLicenese": "تحميل التراخيص والشهادات",
"description": "وصف",
"attachFile": "أرفق ملف",
"branchLocation": "معلومات الفرع والموقع",
"tapToEdit": "انقر للتعديل",
"myServiceBranches": "فروع خدمتي",
"enter_licence_detail": "الرجاء إدخال تفاصيل السجلات التجارية وإرفاق صور الترخيص",
"country": "بلد",
"city": "مدينة",
"editServices": "تحرير الخدمات"
}

@ -145,5 +145,24 @@
"recommended_ads": "Recommended Ads",
"upcoming_appointment": "Upcoming Appointment",
"my_service_providers": "My Recent Service Providers",
"appointment_details": "Appointment Details"
"appointment_details": "Appointment Details",
"no_city_available": "No City Available for this country",
"branch_created": "Branch is successfully created",
"branch_updated": "Branch is successfully Updated",
"branch_deleted": "Branch is successfully Deleted",
"dashboard_main": "Dashboard/Main Page",
"logo_brand": "Logo/Brand",
"remove": "Remove",
"no_branch": "No Branch Added Yet",
"login_once": "Please login once",
"defineLicenese": "Upload Licenses and Certificates",
"description": "Description",
"attachFile": "Attach File",
"branchLocation": "Branch info and Location",
"tapToEdit": "Tap to edit",
"myServiceBranches": "My Service Branches",
"enter_licence_detail": "Please enter the detail for commercial records and attach the license images",
"country": "country",
"city": "city",
"editServices": "Edit Services"
}

@ -65,6 +65,10 @@ class GlobalConsts {
class MyAssets {
//Banner
static String carBanner = "assets/images/bn_car.jpeg";
//NavBar Icons
static String homeIcon = "assets/icons/home_icon.svg";
static String announcementIcon = "assets/icons/anouncement_icon.svg";

@ -1,6 +1,5 @@
import 'dart:convert';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/cupertino.dart';
@ -24,6 +23,7 @@ import 'package:mc_common_app/models/user/register_user.dart';
import 'package:mc_common_app/models/user/user.dart';
import 'package:mc_common_app/models/user/verify_email.dart';
import 'package:mc_common_app/repositories/user_repo.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/utils/shared_prefrence.dart';
import 'package:mc_common_app/utils/utils.dart';
@ -320,7 +320,7 @@ class UserVM extends BaseVM {
}
}
Future<void> performBasicOtpLoginSelectionPage(BuildContext context, {required String userToken}) async {
Future<void> performBasicOtpLoginSelectionPage(BuildContext context, {required String userToken, required AppType appType}) async {
Utils.showLoading(context);
LoginPasswordRespModel user = await userRepo.loginV2OTP(userToken, "1");
Utils.hideLoading(context);
@ -334,6 +334,20 @@ class UserVM extends BaseVM {
RegisterUserRespModel verifiedUser = RegisterUserRespModel.fromJson(jsonDecode(response2.body));
if (verifiedUser.messageStatus == 1) {
User user = User.fromJson(jsonDecode(response2.body));
if (appType == AppType.provider) {
if (user.data!.userInfo!.roleId == 5 || user.data!.userInfo!.roleId == 6) {
AppState().setUser = user;
SharedPrefManager.setUserToken(user.data!.accessToken ?? "");
SharedPrefManager.setUserId(user.data!.userInfo!.userId ?? "");
SharedPrefManager.setRefreshToken(user.data!.refreshToken ?? "");
SharedPrefManager.setData(jsonEncode(user.data!.userInfo!.toJson()));
navigateReplaceWithName(context, AppRoutes.dashboard);
} else {
Utils.showToast("LocaleKeys.onlyProviderApp.tr()");
//("Sorry, Only Customer's can log in this app");
}
} else if (user.data!.userInfo!.roleId == 4) {
if (user.data!.userInfo!.roleId == 4) {
AppState().setUser = user;
SharedPrefManager.setUserToken(user.data!.accessToken ?? "");
@ -342,8 +356,8 @@ class UserVM extends BaseVM {
SharedPrefManager.setData(jsonEncode(user.data!.userInfo!.toJson()));
navigateReplaceWithName(context, AppRoutes.dashboard);
} else {
Utils.showToast
("Sorry, Only Customer's can log in this app");
Utils.showToast("Sorry, Only Customer's can log in this app");
}
}
} else {
Utils.showToast(verifiedUser.message ?? "");

@ -18,6 +18,7 @@ class LoginMethodSelectionPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
UserVM userVM = context.read<UserVM>();
return Scaffold(
appBar: CustomAppBar( isRemoveBackButton: true, title: LocaleKeys.log_in.tr()),
body: Container(
@ -36,7 +37,7 @@ class LoginMethodSelectionPage extends StatelessWidget {
Expanded(
child: ShowImageButton(
onClick: () {
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken);
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken,appType: userVM.currentAppType);
},
title: LocaleKeys.fingerPrint.tr(),
icon: icons + "ic_fingerprint.svg",
@ -46,7 +47,7 @@ class LoginMethodSelectionPage extends StatelessWidget {
Expanded(
child: ShowImageButton(
onClick: () {
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken);
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken,appType: userVM.currentAppType);
},
title: LocaleKeys.faceRecognition.tr(),
icon: icons + "ic_face.svg",
@ -60,7 +61,7 @@ class LoginMethodSelectionPage extends StatelessWidget {
Expanded(
child: ShowImageButton(
onClick: () {
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken);
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken,appType: userVM.currentAppType);
},
title: LocaleKeys.SMS.tr(),
icon: icons + "ic_sms.svg",
@ -71,7 +72,7 @@ class LoginMethodSelectionPage extends StatelessWidget {
child: ShowImageButton(
onClick: () {
// navigateWithName(context, AppRoutes.dashboard);
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken);
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken,appType: userVM.currentAppType);
},
title: LocaleKeys.whatsapp.tr(),
icon: icons + "ic_whatsapp.svg",

@ -2,12 +2,15 @@ import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/utils/utils.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/show_fill_button.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import '../../theme/colors.dart';
@ -16,6 +19,7 @@ class RegisterSelectionPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
UserVM userVM = Provider.of(context, listen: false);
return Scaffold(
body: Container(
width: double.infinity,
@ -57,7 +61,11 @@ class RegisterSelectionPage extends StatelessWidget {
isFlatButton: true,
txtColor: Colors.black,
onPressed: () {
navigateWithName(context, AppRoutes.register);
if (userVM.currentAppType == AppType.customer) {
navigateWithName(context, AppRoutes.registerCustomer);
} else {
navigateWithName(context, AppRoutes.registerProvider);
}
},
),
10.height,

@ -71,6 +71,7 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
final bool isRemoveBackButton;
final String profileImageUrl;
final bool isDrawerEnabled;
final VoidCallback? onTap;
const CustomAppBar({
Key? key,
@ -84,6 +85,7 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
this.elevation,
this.isTitleCenter,
this.titleColor,
this.onTap,
}) : super(key: key);
@override
@ -94,7 +96,9 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
elevation: elevation ?? 0,
centerTitle: isTitleCenter ?? true,
leading: isDrawerEnabled
? Row(
? InkWell(
onTap: onTap,
child: Row(
children: [
Image.asset(
profileImageUrl,
@ -105,7 +109,8 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
10.width,
SvgPicture.asset(MyAssets.dashboardDrawerIcon),
],
).paddingOnly(left: 21)
).paddingOnly(left: 21),
)
: isRemoveBackButton
? null
: IconButton(
@ -121,5 +126,5 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
}
@override
Size get preferredSize => const Size.fromHeight(80);
Size get preferredSize => const Size.fromHeight(55);
}

Loading…
Cancel
Save