|
|
|
|
@ -1,3 +1,6 @@
|
|
|
|
|
import 'dart:async';
|
|
|
|
|
import 'dart:developer';
|
|
|
|
|
|
|
|
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:mc_common_app/classes/app_state.dart';
|
|
|
|
|
@ -9,17 +12,15 @@ import 'package:mc_common_app/generated/locale_keys.g.dart';
|
|
|
|
|
import 'package:mc_common_app/models/user_models/user.dart';
|
|
|
|
|
import 'package:mc_common_app/theme/colors.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/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/chat_view_model.dart';
|
|
|
|
|
import 'package:mc_common_app/view_models/requests_view_model.dart';
|
|
|
|
|
import 'package:mc_common_app/views/advertisement/ad_creation_steps/ad_review_containers.dart';
|
|
|
|
|
import 'package:mc_common_app/views/location_views/pick_location_page.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/filters_list.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:mc_common_app/widgets/txt_field.dart';
|
|
|
|
|
@ -36,6 +37,9 @@ class _ReviewRequestOfferState extends State<ReviewRequestOffer> {
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
final requestVM = context.read<RequestsVM>();
|
|
|
|
|
if (requestVM.acceptedRequestOffer != null && requestVM.acceptedRequestOffer!.requestDeliveryOption == RequestDeliveryOptionEnum.both) {
|
|
|
|
|
populateRequestDeliveryOptions();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (requestVM.currentSelectedRequest != null && requestVM.currentSelectedRequest!.address.isEmpty) {
|
|
|
|
|
requestVM.addressSparePartRequestDelivery = "";
|
|
|
|
|
@ -44,6 +48,18 @@ class _ReviewRequestOfferState extends State<ReviewRequestOffer> {
|
|
|
|
|
super.initState();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void dispose() {
|
|
|
|
|
super.dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
populateRequestDeliveryOptions() {
|
|
|
|
|
scheduleMicrotask(() {
|
|
|
|
|
final requestVM = context.read<RequestsVM>();
|
|
|
|
|
requestVM.populateRequestDeliveryOptions();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Widget buildPersonalInformation() {
|
|
|
|
|
UserInfo userInfo = AppState().getUser.data!.userInfo!;
|
|
|
|
|
return Column(
|
|
|
|
|
@ -91,10 +107,19 @@ class _ReviewRequestOfferState extends State<ReviewRequestOffer> {
|
|
|
|
|
Widget buildLocationInformation(BuildContext context) {
|
|
|
|
|
final requestVM = context.watch<RequestsVM>();
|
|
|
|
|
String address = "";
|
|
|
|
|
|
|
|
|
|
if (requestVM.acceptedRequestOffer != null && requestVM.acceptedRequestOffer!.requestDeliveryOption == RequestDeliveryOptionEnum.delivery) {
|
|
|
|
|
address = requestVM.currentSelectedRequest!.address;
|
|
|
|
|
} else {
|
|
|
|
|
} else if (requestVM.acceptedRequestOffer != null && requestVM.acceptedRequestOffer!.requestDeliveryOption == RequestDeliveryOptionEnum.selfPickup) {
|
|
|
|
|
address = requestVM.currentSelectedOffer!.providerAddress ?? "";
|
|
|
|
|
} else {
|
|
|
|
|
if (requestVM.selectedDeliveryOptionEnum == RequestDeliveryOptionEnum.delivery) {
|
|
|
|
|
address = requestVM.currentSelectedRequest!.address;
|
|
|
|
|
} else if (requestVM.selectedDeliveryOptionEnum == RequestDeliveryOptionEnum.selfPickup) {
|
|
|
|
|
address = requestVM.currentSelectedOffer!.providerAddress ?? "";
|
|
|
|
|
} else {
|
|
|
|
|
address = "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
@ -109,21 +134,48 @@ class _ReviewRequestOfferState extends State<ReviewRequestOffer> {
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
8.height,
|
|
|
|
|
Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
SingleDetailWidget(text: address, type: LocaleKeys.location.tr()),
|
|
|
|
|
FiltersList(
|
|
|
|
|
filterList: requestVM.deliveryOptionsForReviewRequest,
|
|
|
|
|
onFilterTapped: (index, selectedFilterId) {
|
|
|
|
|
requestVM.updateSelectedDeliveryOptionEnum(selectedFilterId.toRequestDeliveryOptionEnum());
|
|
|
|
|
},
|
|
|
|
|
needLeftPadding: false,
|
|
|
|
|
).paddingOnly(bottom: 8),
|
|
|
|
|
if (requestVM.selectedDeliveryOptionEnumError.isNotEmpty) ...[
|
|
|
|
|
requestVM.selectedDeliveryOptionEnumError.toText(fontSize: 12, color: Colors.red),
|
|
|
|
|
],
|
|
|
|
|
if (requestVM.selectedDeliveryOptionEnum != null) ...[
|
|
|
|
|
Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
SingleDetailWidget(text: address, type: LocaleKeys.location.tr()),
|
|
|
|
|
if (requestVM.selectedDeliveryOptionEnum == RequestDeliveryOptionEnum.selfPickup) ...[
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
LocaleKeys.openMapLocation.tr().toText(
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
isBold: true,
|
|
|
|
|
color: MyColors.primaryColor,
|
|
|
|
|
isUnderLine: true,
|
|
|
|
|
),
|
|
|
|
|
4.width,
|
|
|
|
|
Image.asset(
|
|
|
|
|
MyAssets.icRightUpPng,
|
|
|
|
|
height: 6,
|
|
|
|
|
width: 6,
|
|
|
|
|
color: MyColors.primaryColor,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
).onPress(() async {
|
|
|
|
|
double latitude, longitude = 0.0;
|
|
|
|
|
latitude = double.parse(requestVM.currentSelectedOffer!.providerLatitude ?? "0.0");
|
|
|
|
|
longitude = double.parse(requestVM.currentSelectedOffer!.providerLongitude ?? "0.0");
|
|
|
|
|
await Utils.openLocationInMaps(latitude: latitude, longitude: longitude);
|
|
|
|
|
})
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
// 16.height,
|
|
|
|
|
// SingleDetailWidget(
|
|
|
|
|
// text: requestVM.additionalAddressSparePartRequestDelivery.isNotEmpty ? requestVM.additionalAddressSparePartRequestDelivery : "N/A",
|
|
|
|
|
// type: LocaleKeys.additionalAddressDetails.tr(),
|
|
|
|
|
// ),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
@ -327,8 +379,13 @@ class _ReviewRequestOfferState extends State<ReviewRequestOffer> {
|
|
|
|
|
title: LocaleKeys.payNow.tr(),
|
|
|
|
|
isBold: false,
|
|
|
|
|
onPressed: () {
|
|
|
|
|
final requestVM = context.read<RequestsVM>();
|
|
|
|
|
// context.read<PaymentVM>().updateRequestId(id: requestVM.currentSelectedRequest!.id);
|
|
|
|
|
navigateWithName(context, AppRoutes.paymentMethodsView, arguments: PaymentTypes.request);
|
|
|
|
|
if (requestVM.acceptedRequestOffer!.requestDeliveryOption == RequestDeliveryOptionEnum.both && requestVM.selectedDeliveryOptionEnum == null) {
|
|
|
|
|
requestVM.updateSelectedDeliveryOptionEnumError(GlobalConsts.deliveryOptionSelectionError);
|
|
|
|
|
} else {
|
|
|
|
|
navigateWithName(context, AppRoutes.paymentMethodsView, arguments: PaymentTypes.request);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
|