pushing again with main activity

aamir_dev
Faiz Hashmi 2 years ago
parent 3ccb9d4955
commit 9ca2eff009

@ -1,8 +1,5 @@
import 'dart:developer';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart';
@ -12,12 +9,11 @@ import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/utils/utils.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/chat_view_model.dart';
import 'package:mc_common_app/view_models/requests_view_model.dart'; import 'package:mc_common_app/views/advertisement/components/ads_images_corousel_widget.dart';
import 'package:mc_common_app/views/requests/request_bottomsheets.dart';
import 'package:mc_common_app/widgets/button/show_fill_button.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/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:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
@ -26,101 +22,6 @@ class RequestDetailPage extends StatelessWidget {
const RequestDetailPage({Key? key, required this.requestDetailPageArguments}) : super(key: key); const RequestDetailPage({Key? key, required this.requestDetailPageArguments}) : super(key: key);
Future buildSendOfferBottomSheet(BuildContext context) {
final requestDetail = requestDetailPageArguments.requestModel;
return showModalBottomSheet(
context: context,
isScrollControlled: true,
enableDrag: true,
builder: (BuildContext context) {
return Consumer(builder: (BuildContext context, RequestsVM requestsVM, Widget? child) {
return InfoBottomSheet(
title: LocaleKeys.makeAnOffer.tr().toText(fontSize: 28, isBold: true, letterSpacing: -1.44),
description: Padding(
padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
12.height,
TxtField(
value: requestsVM.offerPrice,
errorValue: requestsVM.offerPriceError,
keyboardType: TextInputType.number,
hint: LocaleKeys.enterAmount.tr(),
numbersOnly: true,
onChanged: (v) => requestsVM.updateOfferPrice(v),
),
if (requestDetail.requestType == RequestsTypeEnum.serviceRequest.getIdFromRequestTypeStatusEnum()) ...[
12.height,
TxtField(
value: requestsVM.serviceItem,
errorValue: requestsVM.offerPriceError,
keyboardType: TextInputType.number,
hint: "Service Item",
onChanged: (v) => requestsVM.updateServiceItem(v),
),
12.height,
TxtField(
value: requestsVM.itemManufacturer,
errorValue: requestsVM.offerPriceError,
keyboardType: TextInputType.number,
hint: "Manufacturer",
onChanged: (v) => requestsVM.updateItemManufacturer(v),
),
12.height,
TxtField(
errorValue: "",
hint: "Manufactured On",
value: requestsVM.serviceItemCreatedOn,
isNeedClickAll: true,
postfixData: Icons.calendar_month_rounded,
postFixDataColor: MyColors.darkTextColor,
onTap: () async {
final formattedDate = await Utils.pickDateFromDatePicker(context);
requestsVM.updateServiceItemCreatedOn(formattedDate);
},
),
],
12.height,
TxtField(
maxLines: 5,
value: requestsVM.offerDescription,
errorValue: requestsVM.offerDescriptionError,
keyboardType: TextInputType.text,
hint: LocaleKeys.description.tr(),
onChanged: (v) => requestsVM.updateOfferDescription(v),
),
],
),
25.height,
ShowFillButton(
title: LocaleKeys.submit.tr(),
onPressed: () {
requestsVM.onSendOfferPressed(
context: context,
receiverId: requestDetail.customerID,
message: requestsVM.offerDescription,
requestId: requestDetail.id,
offerPrice: requestsVM.offerPrice,
requestModel: requestDetail,
requestIndex: requestDetailPageArguments.requestIndex,
isFromChatScreen: false,
);
},
maxWidth: double.infinity,
),
19.height,
],
),
));
});
},
);
}
Widget buildBottomButton({ Widget buildBottomButton({
required RequestStatus requestStatus, required RequestStatus requestStatus,
required String statusText, required String statusText,
@ -175,18 +76,14 @@ class RequestDetailPage extends StatelessWidget {
children: [ children: [
Column( Column(
children: [ children: [
Image.asset(MyAssets.bnCar), ImagesCorouselWidget(imagesList: requestDetailPageArguments.requestModel.requestImages ?? []),
24.height, 24.height,
buildRequestContainer(context), buildRequestContainer(context),
], ],
).toWhiteContainer( ).toWhiteContainer(
width: double.infinity, width: double.infinity,
allPading: 12, allPading: 12,
margin: const EdgeInsets.only( margin: const EdgeInsets.only(top: 21, right: 21, left: 21),
top: 21,
right: 21,
left: 21,
),
), ),
if (!requestDetailPageArguments.requestModel.isChatted) ...[ if (!requestDetailPageArguments.requestModel.isChatted) ...[
ShowFillButton( ShowFillButton(
@ -196,7 +93,7 @@ class RequestDetailPage extends StatelessWidget {
title: LocaleKeys.sendOffer.tr(), title: LocaleKeys.sendOffer.tr(),
isBold: false, isBold: false,
fontSize: 18, fontSize: 18,
onPressed: () => buildSendOfferBottomSheet(context), onPressed: () => buildSendOfferBottomSheet(context, requestDetailPageArguments),
), ),
] else ...[ ] else ...[
buildBottomButton( buildBottomButton(
@ -275,8 +172,8 @@ class RequestDetailPage extends StatelessWidget {
), ),
], ],
), ),
showItem("Customer Name", requestDetail.customerName), showItem("Customer Name: ", requestDetail.customerName),
showItem("Description ", requestDetail.description), showItem("Description: ", requestDetail.description),
showItem("Price Range:", ""), showItem("Price Range:", ""),
Row( Row(
children: [ children: [
@ -290,13 +187,17 @@ class RequestDetailPage extends StatelessWidget {
children: [ children: [
"${requestDetail.price.toInt()}".toText(fontSize: 25, isBold: true), "${requestDetail.price.toInt()}".toText(fontSize: 25, isBold: true),
2.width, 2.width,
LocaleKeys.sar.tr().toText(color: MyColors.lightTextColor, fontSize: 16, height: 2.3), LocaleKeys.sar.tr().toText(
color: MyColors.lightTextColor,
fontSize: 16,
height: 2.3,
),
], ],
), ),
Row( Row(
children: [ children: [
Utils.statusContainerChip( Utils.statusContainerChip(
text: ("${LocaleKeys.offer.tr()} ${requestDetail.requestStatusName}"), text: (requestDetail.requestStatusName),
chipColor: MyColors.grey98Color.withOpacity(0.3), chipColor: MyColors.grey98Color.withOpacity(0.3),
textColor: MyColors.lightTextColor, textColor: MyColors.lightTextColor,
), ),

@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart';

@ -80,9 +80,23 @@ class BranchListPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Utils.statusContainerChip( Row(
text: branchModel.branchStatusLabel ?? "", mainAxisAlignment: MainAxisAlignment.spaceBetween,
chipColor: Utils.getChipColorByBranchStatus(branchModel.branchStatus!), children: [
Utils.statusContainerChip(
text: branchModel.branchStatusLabel ?? "",
chipColor: Utils.getChipColorByBranchStatus(branchModel.branchStatus!),
),
InkWell(
onTap: () async {
await serviceVM.onDeleteBranchPressed(context: context, branchID: branchModel.id ?? -1);
},
child: const Icon(
Icons.delete,
color: MyColors.grey70Color,
),
),
],
), ),
5.height, 5.height,
Text( Text(
@ -102,26 +116,12 @@ class BranchListPage extends StatelessWidget {
color: MyColors.grey70Color, color: MyColors.grey70Color,
maxLines: 2, maxLines: 2,
)), )),
const Icon(Icons.arrow_forward_rounded, size: 18), const Icon(Icons.arrow_forward_rounded, size: 18, color: MyColors.grey70Color),
], ],
) )
], ],
), ),
), ),
// 12.width,
// Column(
// crossAxisAlignment: CrossAxisAlignment.end,
// mainAxisAlignment: MainAxisAlignment.end,
//
// children: [
// IconButton(
// onPressed: () async {},
// icon: const Icon(Icons.delete),
// color: Colors.red,
// ),
// const Icon(Icons.arrow_forward_rounded, size: 16),
// ],
// ),
], ],
).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12)).onPress(() async { ).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12)).onPress(() async {
branchModel.countryID = serviceVM.branches!.data!.countryID; branchModel.countryID = serviceVM.branches!.data!.countryID;

@ -1,8 +1,8 @@
import 'dart:async'; import 'dart:async';
import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/extensions/string_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/generated/locale_keys.g.dart';
import 'package:mc_common_app/utils/utils.dart';
import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:mc_common_app/view_models/service_view_model.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -31,14 +31,14 @@ class CreateBranchView extends StatefulWidget {
} }
class _CreateBranchViewState extends State<CreateBranchView> { class _CreateBranchViewState extends State<CreateBranchView> {
late ServiceVM branchVM; late ServiceVM serviceVM;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
scheduleMicrotask(() { scheduleMicrotask(() {
branchVM = context.read<ServiceVM>(); serviceVM = context.read<ServiceVM>();
branchVM.getAllCountriesList(widget.branchData, EasyLocalization.of(context)?.currentLocale?.countryCode ?? "SA"); serviceVM.getAllCountriesList(widget.branchData, EasyLocalization.of(context)?.currentLocale?.countryCode ?? "SA");
}); });
} }
@ -65,7 +65,7 @@ class _CreateBranchViewState extends State<CreateBranchView> {
serviceVM.countryId = value.id; serviceVM.countryId = value.id;
serviceVM.getAllCities(widget.branchData, EasyLocalization.of(context)?.currentLocale?.countryCode ?? "SA"); serviceVM.getAllCities(widget.branchData, EasyLocalization.of(context)?.currentLocale?.countryCode ?? "SA");
}, },
isSelectAble: widget.branchData == null ? true : false, isSelectAble: widget.branchData == null,
list: serviceVM.countryDropList, list: serviceVM.countryDropList,
dropdownValue: serviceVM.countryValue, dropdownValue: serviceVM.countryValue,
hint: "${LocaleKeys.chooseCountry.tr()}*", hint: "${LocaleKeys.chooseCountry.tr()}*",
@ -108,6 +108,44 @@ class _CreateBranchViewState extends State<CreateBranchView> {
}, },
), ),
12.height, 12.height,
Row(
children: [
Expanded(
child: TxtField(
errorValue: '',
hint: 'Opening Time*',
value: serviceVM.openTime,
isNeedClickAll: true,
postfixData: Icons.access_time,
postFixDataColor: MyColors.lightTextColor,
onTap: () async {
TimeOfDay startTime = TimeOfDay.now();
String endTime = await Utils.pickTime(context, initialTime: startTime);
FocusManager.instance.primaryFocus?.unfocus();
serviceVM.updateSelectionOpenTime(endTime);
},
),
),
12.width,
Expanded(
child: TxtField(
errorValue: '',
hint: 'Closing Time*',
value: serviceVM.closedTime,
isNeedClickAll: true,
postfixData: Icons.access_time,
postFixDataColor: MyColors.lightTextColor,
onTap: () async {
TimeOfDay startTime = TimeOfDay.now();
String endTime = await Utils.pickTime(context, initialTime: startTime);
FocusManager.instance.primaryFocus?.unfocus();
serviceVM.updateSelectionCloseTime(endTime);
},
),
),
],
),
12.height,
TxtField( TxtField(
hint: LocaleKeys.address.tr(), hint: LocaleKeys.address.tr(),
isNeedClickAll: false, isNeedClickAll: false,
@ -191,6 +229,9 @@ class _CreateBranchViewState extends State<CreateBranchView> {
).horPaddingMain(), ).horPaddingMain(),
), ),
), ),
if (serviceVM.branchErrorScreen.isNotEmpty) ...[
serviceVM.branchErrorScreen.toText(fontSize: 14, color: Colors.red).paddingAll(21),
],
if (widget.branchData == null || widget.branchData!.id == null) ...[ if (widget.branchData == null || widget.branchData!.id == null) ...[
SizedBox( SizedBox(
width: double.infinity, width: double.infinity,
@ -204,6 +245,8 @@ class _CreateBranchViewState extends State<CreateBranchView> {
context: context, context: context,
branchName: serviceVM.branchName, branchName: serviceVM.branchName,
branchDesc: serviceVM.branchDescription, branchDesc: serviceVM.branchDescription,
openTime: serviceVM.openTime,
closeTime: serviceVM.closedTime,
cityID: serviceVM.cityId, cityID: serviceVM.cityId,
address: serviceVM.address, address: serviceVM.address,
latitude: serviceVM.latitude, latitude: serviceVM.latitude,
@ -225,6 +268,8 @@ class _CreateBranchViewState extends State<CreateBranchView> {
branchID: widget.branchData!.id ?? 0, branchID: widget.branchData!.id ?? 0,
branchName: widget.branchData!.branchName ?? "", branchName: widget.branchData!.branchName ?? "",
branchDesc: widget.branchData!.branchDescription ?? "", branchDesc: widget.branchData!.branchDescription ?? "",
openTime: widget.branchData!.openTime ?? "",
closedTime: widget.branchData!.closeTime ?? "",
cityID: widget.branchData!.cityId ?? 0, cityID: widget.branchData!.cityId ?? 0,
address: widget.branchData!.address ?? "", address: widget.branchData!.address ?? "",
latitude: widget.branchData!.latitude ?? "0", latitude: widget.branchData!.latitude ?? "0",

Loading…
Cancel
Save