Minor Fixes

aamir_dev
Faiz Hashmi 11 months ago
parent 693083df6f
commit 8f8f19b35e

@ -1,3 +1,5 @@
import 'dart:developer';
import 'package:auto_size_text/auto_size_text.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/cupertino.dart';

@ -28,7 +28,7 @@ class ShippingRepoImp extends ShippingRepo {
String token = appState.getUser.data!.accessToken ?? "";
Map queryParameters = {
"requestID": "${requestId ?? 0}",
"shippingStatus": "${shippingStatusEnum != null ? shippingStatusEnum.getIdFromShippingStatusEnum() : 0}",
"shippingStatus": "${shippingStatusEnum != null ? shippingStatusEnum.getIdFromShippingStatusEnum() : -1}", // -1 to get all requests
};
GenericRespModel genericRespModel = await apiClient.postJsonForObject(

@ -1,5 +1,6 @@
import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
@ -81,7 +82,7 @@ class CommonServicesImp implements CommonAppServices {
}
if (imageModels.length > GlobalConsts.maxFileCount) {
Utils.showToast(LocaleKeys.maxFileSelection);
Utils.showToast(LocaleKeys.maxFileSelection.tr());
imageModels = imageModels.sublist(0, GlobalConsts.maxFileCount); // Keep only the first 7 images
}

@ -4,11 +4,14 @@ import 'dart:typed_data';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/utils/date_helper.dart';
import 'package:mc_common_app/utils/dialogs_and_bottomsheets.dart';
import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/views/setting_options/widgets/custom_setting_options_tile.dart';
import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/common_widgets/info_bottom_sheet.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:path/path.dart' as p;
@ -636,4 +639,57 @@ class Utils {
ShareResult result = await Share.share(GlobalConsts.getAppInvitationLink(), subject: 'Join Mowater');
return result;
}
static buildProviderContactInfoBottomSheet({required BuildContext context, required String? email, required String? mobileNo}) {
return showModalBottomSheet(
context: context,
isScrollControlled: true,
enableDrag: true,
builder: (BuildContext context) {
return InfoBottomSheet(
title: LocaleKeys.contactDetails.tr().toText(fontSize: 28, isBold: true, letterSpacing: -1.44),
description: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (mobileNo != null && mobileNo.isNotEmpty) ...[
CustomSettingOptionsTile(
leadingWidget: const Icon(
Icons.call,
size: 20,
color: MyColors.greyColor,
),
titleText: LocaleKeys.phoneNumber.tr(),
subTitle: " $mobileNo",
needBorderBelow: true,
showTrailingArrow: false,
subtitleTextColor: MyColors.greyColor,
onTap: () {
Utils.openNumberViaCaller(phoneNumber: mobileNo);
},
),
],
if (email != null && email.isNotEmpty) ...[
CustomSettingOptionsTile(
leadingWidget: const Icon(
Icons.email_outlined,
size: 20,
color: MyColors.greyColor,
),
titleText: LocaleKeys.emailAddress.tr(),
subTitle: " $email",
needBorderBelow: false,
showTrailingArrow: false,
subtitleTextColor: MyColors.greyColor,
onTap: () {
Utils.openEmailViaEmailApp(emailAddress: email);
},
),
],
30.height,
],
),
);
},
);
}
}

@ -51,7 +51,12 @@ class ShippingManagementVM extends BaseVM {
shippingRequestFilterOptions.add(FilterListModel(title: shippingStatusEnums[i].enumValueStr, isSelected: false, id: shippingStatusEnums[i].enumValue));
shippingRequestStatusesList.add(FilterListModel(title: shippingStatusEnums[i].enumValueStr, isSelected: false, id: shippingStatusEnums[i].enumValue));
}
shippingRequestFilterOptions.insert(0, FilterListModel(title: Utils.getNameByShippingRequestStatusEnum(0.toShippingStatusEnum()), isSelected: false, id: 0));
int index = shippingRequestFilterOptions.indexWhere((element) => element.id == 0);
if (index == -1) {
log("index: $index");
shippingRequestFilterOptions.insert(0, FilterListModel(title: Utils.getNameByShippingRequestStatusEnum(0.toShippingStatusEnum()), isSelected: false, id: 0));
}
shippingRequestFilterOptions.insert(0, FilterListModel(title: Utils.getNameByShippingRequestStatusEnum(ShippingRequestStatusEnum.allRequests), isSelected: true, id: -1));
notifyListeners();
}
@ -66,8 +71,6 @@ class ShippingManagementVM extends BaseVM {
notifyListeners();
return;
}
log("shippingRequestStatusEnum.getIdFromShippingStatusEnum(): ${shippingRequestStatusEnum.getIdFromShippingStatusEnum()}");
log("shippingRequestFilterOptions: ${shippingRequestFilterOptions[shippingRequestStatusEnum.getIdFromShippingStatusEnum() + 1].title}");
shippingRequestFilterOptions[shippingRequestStatusEnum.getIdFromShippingStatusEnum() + 1].isSelected = true; // +1 to match with the index 0 index has all requests
await getShippingRequestsListByFilters(shippingStatusEnum: shippingRequestStatusEnum);
notifyListeners();

@ -28,7 +28,7 @@ class ScreenArgumentsForAppointmentDetailPage {
class BookAppointmentSchedulesView extends StatelessWidget {
final ScreenArgumentsForAppointmentDetailPage screenArgumentsForAppointmentDetailPage;
const BookAppointmentSchedulesView({Key? key, required this.screenArgumentsForAppointmentDetailPage}) : super(key: key);
const BookAppointmentSchedulesView({super.key, required this.screenArgumentsForAppointmentDetailPage});
@override
Widget build(BuildContext context) {

@ -1,5 +1,3 @@
import 'dart:developer';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/classes/app_state.dart';
@ -14,70 +12,13 @@ import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/utils.dart';
import 'package:mc_common_app/view_models/appointments_view_model.dart';
import 'package:mc_common_app/views/setting_options/widgets/custom_setting_options_tile.dart';
import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/common_widgets/info_bottom_sheet.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart';
class ReviewAppointment extends StatelessWidget {
const ReviewAppointment({Key? key}) : super(key: key);
// buildProviderContactInfoBottomSheet(BuildContext context) {
// final appointmentsVM = context.read<AppointmentsVM>();
// log(": ${appointmentsVM.selectedBranchModel}");
// return showModalBottomSheet(
// context: context,
// isScrollControlled: true,
// enableDrag: true,
// builder: (BuildContext context) {
// return InfoBottomSheet(
// title: LocaleKeys.contactDetails.tr().toText(fontSize: 28, isBold: true, letterSpacing: -1.44),
// description: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// if (requestVM.currentSelectedOffer!.mobileNo != null && requestVM.currentSelectedOffer!.mobileNo!.isNotEmpty) ...[
// CustomSettingOptionsTile(
// leadingWidget: const Icon(
// Icons.call,
// size: 20,
// color: MyColors.greyColor,
// ),
// titleText: LocaleKeys.phoneNumber.tr(),
// subTitle: " ${requestVM.currentSelectedOffer!.mobileNo ?? ""}",
// needBorderBelow: true,
// showTrailingArrow: false,
// subtitleTextColor: MyColors.greyColor,
// onTap: () {
// Utils.openNumberViaCaller(phoneNumber: requestVM.currentSelectedOffer!.mobileNo ?? "");
// },
// ),
// ],
// if (requestVM.currentSelectedOffer!.email != null && requestVM.currentSelectedOffer!.email!.isNotEmpty) ...[
// CustomSettingOptionsTile(
// leadingWidget: const Icon(
// Icons.email_outlined,
// size: 20,
// color: MyColors.greyColor,
// ),
// titleText: LocaleKeys.emailAddress.tr(),
// subTitle: " ${requestVM.currentSelectedOffer!.email ?? ""}",
// needBorderBelow: false,
// showTrailingArrow: false,
// subtitleTextColor: MyColors.greyColor,
// onTap: () {
// Utils.openEmailViaEmailApp(emailAddress: requestVM.currentSelectedOffer!.email ?? "");
// },
// ),
// ],
// 30.height,
// ],
// ),
// );
// },
// );
// }
const ReviewAppointment({super.key});
Widget showItem(String title, String value) {
return Row(
@ -440,7 +381,7 @@ class ReviewAppointment extends StatelessWidget {
actions: [
IconButton(
onPressed: () {
// buildProviderContactInfoBottomSheet(context);
// Utils.buildProviderContactInfoBottomSheet(context: context, email:, mobileNo:);
},
icon: const Icon(Icons.help_outline_outlined).paddingOnly(right: 21),
),

@ -275,61 +275,6 @@ class _ReviewRequestOfferState extends State<ReviewRequestOffer> {
);
}
buildProviderContactInfoBottomSheet(BuildContext context) {
final requestVM = context.read<RequestsVM>();
return showModalBottomSheet(
context: context,
isScrollControlled: true,
enableDrag: true,
builder: (BuildContext context) {
return InfoBottomSheet(
title: LocaleKeys.contactDetails.tr().toText(fontSize: 28, isBold: true, letterSpacing: -1.44),
description: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (requestVM.currentSelectedOffer!.mobileNo != null && requestVM.currentSelectedOffer!.mobileNo!.isNotEmpty) ...[
CustomSettingOptionsTile(
leadingWidget: const Icon(
Icons.call,
size: 20,
color: MyColors.greyColor,
),
titleText: LocaleKeys.phoneNumber.tr(),
subTitle: " ${requestVM.currentSelectedOffer!.mobileNo ?? ""}",
needBorderBelow: true,
showTrailingArrow: false,
subtitleTextColor: MyColors.greyColor,
onTap: () {
Utils.openNumberViaCaller(phoneNumber: requestVM.currentSelectedOffer!.mobileNo ?? "");
},
),
],
if (requestVM.currentSelectedOffer!.email != null && requestVM.currentSelectedOffer!.email!.isNotEmpty) ...[
CustomSettingOptionsTile(
leadingWidget: const Icon(
Icons.email_outlined,
size: 20,
color: MyColors.greyColor,
),
titleText: LocaleKeys.emailAddress.tr(),
subTitle: " ${requestVM.currentSelectedOffer!.email ?? ""}",
needBorderBelow: false,
showTrailingArrow: false,
subtitleTextColor: MyColors.greyColor,
onTap: () {
Utils.openEmailViaEmailApp(emailAddress: requestVM.currentSelectedOffer!.email ?? "");
},
),
],
30.height,
],
),
);
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
@ -340,7 +285,14 @@ class _ReviewRequestOfferState extends State<ReviewRequestOffer> {
onBackButtonTapped: () => Navigator.pop(context),
actions: [
IconButton(
onPressed: () => buildProviderContactInfoBottomSheet(context),
onPressed: () {
final requestVM = context.read<RequestsVM>();
Utils.buildProviderContactInfoBottomSheet(
context: context,
email: requestVM.currentSelectedOffer!.email,
mobileNo: requestVM.currentSelectedOffer!.mobileNo,
);
},
icon: const Icon(Icons.help_outline_outlined).paddingOnly(right: 21),
),
],

@ -121,7 +121,8 @@ class _ShippingManagementViewState extends State<ShippingManagementView> {
if (status) {
pop(context);
int index = shippingManagementVM.shippingRequestFilterOptions.indexWhere((element) => element.isSelected);
await shippingManagementVM.getShippingRequestsListByFilters(shippingStatusEnum: index.toShippingStatusEnum());
int id = shippingManagementVM.shippingRequestFilterOptions[index].id;
await shippingManagementVM.getShippingRequestsListByFilters(shippingStatusEnum: id.toShippingStatusEnum());
}
},
maxWidth: double.infinity,
@ -164,12 +165,11 @@ class _ShippingManagementViewState extends State<ShippingManagementView> {
child: RefreshIndicator(
onRefresh: () async {
int index = shippingVm.shippingRequestFilterOptions.indexWhere((element) => element.isSelected);
await shippingVm.getShippingRequestsListByFilters(shippingStatusEnum: index.toShippingStatusEnum());
int id = shippingVm.shippingRequestFilterOptions[index].id;
await shippingVm.getShippingRequestsListByFilters(shippingStatusEnum: id.toShippingStatusEnum());
},
child: (shippingVm.state == ViewState.busy)
? const Center(
child: CircularProgressIndicator(),
)
? const Center(child: CircularProgressIndicator())
: shippingVm.shippingRequestsList.isEmpty
? Center(child: LocaleKeys.noRequeststoShow.tr().toText(fontSize: 16, color: MyColors.lightTextColor))
: ListView.separated(

@ -20,7 +20,7 @@ class ProviderDetailCard extends StatelessWidget {
final bool isFromFavoriteList;
const ProviderDetailCard({
Key? key,
super.key,
required this.providerImageUrl,
required this.title,
required this.totalBranches,
@ -29,19 +29,31 @@ class ProviderDetailCard extends StatelessWidget {
required this.startedSince,
required this.onCardTapped,
this.isFromFavoriteList = false,
}) : super(key: key);
});
@override
Widget build(BuildContext context) {
String nameInitials = "";
if (title.isNotEmpty) {
nameInitials = title[0];
}
return Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Image.asset(
providerImageUrl,
width: 80,
height: 85,
fit: BoxFit.cover,
),
if (isFromFavoriteList) ...[
CircleAvatar(
radius: 22,
backgroundColor: MyColors.darkPrimaryColor,
child: nameInitials.toText(fontSize: 25, isBold: true),
),
] else ...[
Image.asset(
providerImageUrl,
width: 80,
height: 85,
fit: BoxFit.cover,
),
],
12.width,
Expanded(
child: Column(

Loading…
Cancel
Save