diff --git a/lib/config/provider_routes.dart b/lib/config/provider_routes.dart index c97a936..84b9280 100644 --- a/lib/config/provider_routes.dart +++ b/lib/config/provider_routes.dart @@ -3,11 +3,10 @@ import 'package:car_provider_app/views/appoinments/appoinment_detail_list_page.d import 'package:car_provider_app/views/appoinments/appointment_page.dart'; import 'package:car_provider_app/views/appoinments/merge_appointment_page.dart'; import 'package:car_provider_app/views/appoinments/update_appointment_page.dart'; -import 'package:car_provider_app/views/requests/request_detail_page.dart'; -import 'package:car_provider_app/views/requests/send_offer_page.dart'; +import 'package:car_provider_app/views/dashboard/dashboard_view.dart'; import 'package:car_provider_app/views/settings/branch/branch_detail_page.dart'; import 'package:car_provider_app/views/settings/branch/dealer/dealer_user_page.dart'; -import 'package:car_provider_app/views/settings/branch/create_branch_view.dart'; +import 'package:car_provider_app/views/settings/branch/define_branch_view.dart'; import 'package:car_provider_app/views/settings/schedule/add_schedules_page.dart'; import 'package:car_provider_app/views/settings/schedule/schedules_list_page.dart'; import 'package:car_provider_app/views/settings/services/create_item_page.dart'; @@ -20,18 +19,9 @@ import 'package:car_provider_app/views/settings/services/services_list_page.dart import 'package:car_provider_app/views/subscriptions/my_subscritions_page.dart'; import 'package:car_provider_app/views/subscriptions/all_subscriptions_page.dart'; import 'package:mc_common_app/config/routes.dart'; -import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/models/appointments_models/appointment_list_model.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; -import 'package:mc_common_app/utils/enums.dart'; -import 'package:mc_common_app/views/advertisement/ads_detail_view.dart'; -import 'package:mc_common_app/views/advertisement/create_ad_view.dart'; -import 'package:mc_common_app/views/advertisement/select_ad_type_view.dart'; -import 'package:mc_common_app/views/chat/chat_view.dart'; -import 'package:mc_common_app/views/payments/payment_methods_view.dart'; - -import '../views/dashboard/dashboard_view.dart'; class ProviderAppRoutes { //settings @@ -78,9 +68,9 @@ class ProviderAppRoutes { AppRoutes.dashboard: (context) => const DashboardView(), // defineLicense: (context) => DefineLicensePage(), - dealershipSetting: (context) => DealershipView(), + dealershipSetting: (context) => const DealershipView(), // branchList: (context) => BranchListPage(), - defineBranch: (context) => CreateBranchView((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as BranchDetailModel)), + defineBranch: (context) => DefineBranchView((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as BranchDetailModel)), branchDetail: (context) => BranchDetailPage(ModalRoute.of(context)!.settings.arguments as BranchDetailModel), //Appointments @@ -88,11 +78,7 @@ class ProviderAppRoutes { appointmentDetailList: (context) => const AppointmentDetailListPage(), updateAppointmentPage: (context) => UpdateAppointmentPage(), addServiceInAppointment: (context) => AddNewServiceAppointmentPage(ModalRoute.of(context)!.settings.arguments as AppointmentListModel), - mergeAppointments: (context) => MergeAppointmentListPage(), - - //Requests - AppRoutes.requestsDetailPage: (context) => RequestDetailPage(requestDetailPageArguments: ModalRoute.of(context)!.settings.arguments as RequestDetailPageArguments), - AppRoutes.sendOfferPage: (context) => const SendOfferPage(), + mergeAppointments: (context) => const MergeAppointmentListPage(), //Subscriptions mySubscriptionsPage: (context) => const MySubscriptionsPage(), @@ -109,7 +95,7 @@ class ProviderAppRoutes { //Schedules schedulesList: (context) => SchedulesListPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as String)), - addSchedule: (context) => AddSchedulesPage(), + addSchedule: (context) => const AddSchedulesPage(), //Branch Duplication matchServices: (context) => MatchedServicesPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as MatchServicesArguments)), diff --git a/lib/views/requests/request_detail_page.dart b/lib/views/requests/request_detail_page.dart deleted file mode 100644 index b8a9c81..0000000 --- a/lib/views/requests/request_detail_page.dart +++ /dev/null @@ -1,229 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:mc_common_app/classes/app_state.dart'; -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/theme/colors.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/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/common_widgets/app_bar.dart'; -import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; -import 'package:provider/provider.dart'; -import 'package:easy_localization/easy_localization.dart'; - -class RequestDetailPage extends StatelessWidget { - final RequestDetailPageArguments requestDetailPageArguments; - - const RequestDetailPage({Key? key, required this.requestDetailPageArguments}) : super(key: key); - - Widget buildBottomButton({ - required RequestStatus requestStatus, - required String statusText, - required BuildContext context, - required Function() onViewChatTapped, - }) { - switch (requestStatus) { - case RequestStatus.submitted: - case RequestStatus.inProgress: - case RequestStatus.paid: - case RequestStatus.shipping: - return ShowFillButton( - maxWidth: double.infinity, - margin: const EdgeInsets.all(15), - maxHeight: 55, - title: LocaleKeys.viewChat.tr(), - isBold: false, - onPressed: onViewChatTapped, - ); - case RequestStatus.completed: - case RequestStatus.cancelled: - case RequestStatus.expired: - case RequestStatus.pending: - return buildDisabledButton(statusText); - } - } - - Widget buildDisabledButton(String text) { - return ShowFillButton( - backgroundColor: MyColors.grey98Color.withOpacity(0.3), - txtColor: MyColors.lightTextColor, - maxWidth: double.infinity, - margin: const EdgeInsets.all(15), - maxHeight: 55, - title: text, - isBold: false, - onPressed: () {}, - ); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: CustomAppBar( - title: LocaleKeys.requestDetail.tr(), - ), - body: SizedBox( - width: double.infinity, - height: double.infinity, - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - children: [ - ImagesCorouselWidget(imagesList: requestDetailPageArguments.requestModel.requestImages ?? []), - 24.height, - buildRequestContainer(context), - ], - ).toWhiteContainer( - width: double.infinity, - allPading: 12, - margin: const EdgeInsets.only(top: 21, right: 21, left: 21), - ), - if (!requestDetailPageArguments.requestModel.isChatted) ...[ - ShowFillButton( - maxWidth: double.infinity, - margin: const EdgeInsets.all(15), - maxHeight: 55, - title: LocaleKeys.sendOffer.tr(), - isBold: false, - fontSize: 18, - onPressed: () => buildSendOfferBottomSheet(context, requestDetailPageArguments), - ), - ] else ...[ - buildBottomButton( - requestStatus: requestDetailPageArguments.requestModel.requestStatus, - statusText: "Offer ${requestDetailPageArguments.requestModel.requestStatusName}", - context: context, - onViewChatTapped: () async { - ChatViewArgumentsForRequest chatViewArgumentsForRequest = ChatViewArgumentsForRequest( - chatTypeEnum: ChatTypeEnum.requestOffer, - receiverId: requestDetailPageArguments.requestModel.customerID, - senderId: AppState().getUser.data!.userInfo!.userId.toString(), - requestId: requestDetailPageArguments.requestModel.id, - providerIndex: -1, - // This will be only sent in case of customer - requestModel: requestDetailPageArguments.requestModel, - requestIndex: requestDetailPageArguments.requestIndex, // This will be only sent in case of provider - ); - ChatViewArguments chatViewArguments = ChatViewArguments( - chatTypeEnum: ChatTypeEnum.requestOffer, - chatViewArgumentsForRequest: chatViewArgumentsForRequest, - ); - final chatVM = context.read(); - await chatVM - .getUsersChatMessagesForProvider( - customerId: requestDetailPageArguments.requestModel.customerId, - context: context, - requestOfferId: 0, - requestId: requestDetailPageArguments.requestModel.id, - customerRequestIndex: requestDetailPageArguments.requestIndex, - ) - .whenComplete( - () => navigateWithName(context, AppRoutes.chatView, arguments: chatViewArguments), - ); - }, - ), - ], - ], - ), - ), - ); - } - - Widget buildRequestContainer(BuildContext context) { - final requestDetail = requestDetailPageArguments.requestModel; - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - requestDetail.vehicleTypeName.toText(fontSize: 16, isBold: true), - showItem("Manufacturer:", requestDetail.brand), - showItem("Model:", "${requestDetail.year}"), - ], - ), - ), - Column( - crossAxisAlignment: CrossAxisAlignment.end, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - "${requestDetail.city ?? ""} ${requestDetail.countryName}".toText( - color: MyColors.lightTextColor, - ), - if (requestDetail.createdOn != null) ...[ - DateTime.parse(requestDetail.createdOn!).getTimeAgo().toText( - color: MyColors.lightTextColor, - ), - ], - ], - ), - ], - ), - showItem("Customer Name: ", requestDetail.customerName), - showItem("Description: ", requestDetail.description), - showItem("Price Range:", ""), - Row( - children: [ - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - "${requestDetail.price.toInt()}".toText(fontSize: 25, isBold: true), - 2.width, - LocaleKeys.sar.tr().toText( - color: MyColors.lightTextColor, - fontSize: 16, - height: 2.3, - ), - ], - ), - Row( - children: [ - Utils.statusContainerChip( - text: (requestDetail.requestStatusName), - chipColor: MyColors.grey98Color.withOpacity(0.3), - textColor: MyColors.lightTextColor, - ), - ], - ), - ], - ), - ), - // const Icon(Icons.arrow_forward) - ], - ), - ], - ); - } - - Widget showItem(String title, String value) { - return Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - if (title.isNotEmpty) - title.toText( - color: MyColors.lightTextColor, - ), - if (title.isNotEmpty) 2.width, - if (value.isNotEmpty) Expanded(child: value.toText(isBold: true)), - ], - ); - } -} diff --git a/lib/views/requests/send_offer_page.dart b/lib/views/requests/send_offer_page.dart deleted file mode 100644 index 40eb6ce..0000000 --- a/lib/views/requests/send_offer_page.dart +++ /dev/null @@ -1,55 +0,0 @@ -import 'package:flutter/material.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/widgets/button/show_fill_button.dart'; -import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; -import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; -import 'package:mc_common_app/widgets/txt_field.dart'; -import 'package:easy_localization/easy_localization.dart'; - - -class SendOfferPage extends StatelessWidget { - const SendOfferPage({Key? key}) : super(key: key); - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: CustomAppBar( - title: LocaleKeys.sendOffer.tr(), - ), - body: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - LocaleKeys.sendPriceOffer.tr().toText( - fontSize: 14, - isBold: true, - ), - 12.height, - TxtField( - hint: "35,0000", - ), - 12.height, - TxtField( - hint: LocaleKeys.comment.tr(), - ), - ], - ).toWhiteContainer( - width: double.infinity, - allPading: 12, - margin: const EdgeInsets.all(21), - ), - ShowFillButton( - title: LocaleKeys.submit.tr(), - onPressed: () {}, - maxWidth: double.infinity, - margin: const EdgeInsets.all(21), - ), - ], - ), - ); - } -} diff --git a/lib/views/settings/branch/create_branch_view.dart b/lib/views/settings/branch/define_branch_view.dart similarity index 98% rename from lib/views/settings/branch/create_branch_view.dart rename to lib/views/settings/branch/define_branch_view.dart index 07eb21a..b498a6e 100644 --- a/lib/views/settings/branch/create_branch_view.dart +++ b/lib/views/settings/branch/define_branch_view.dart @@ -21,16 +21,16 @@ import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/txt_field.dart'; -class CreateBranchView extends StatefulWidget { +class DefineBranchView extends StatefulWidget { final BranchDetailModel? branchData; - const CreateBranchView(this.branchData, {super.key}); + const DefineBranchView(this.branchData, {super.key}); @override - State createState() => _CreateBranchViewState(); + State createState() => _DefineBranchViewState(); } -class _CreateBranchViewState extends State { +class _DefineBranchViewState extends State { late ServiceVM serviceVM; @override