From ba0b66d7e5d869b66066f78da2bc226829a6d9aa Mon Sep 17 00:00:00 2001 From: Faiz Hashmi Date: Sun, 3 Sep 2023 16:33:12 +0300 Subject: [PATCH] Added select_ad_type_view.dart --- lib/config/routes.dart | 29 ++--- lib/repositories/ads_repo.dart | 3 + .../advertisement/select_ad_type_view.dart | 122 ++++++++++++++++++ pubspec.lock | 36 +----- pubspec.yaml | 4 +- 5 files changed, 140 insertions(+), 54 deletions(-) create mode 100644 lib/views/advertisement/select_ad_type_view.dart diff --git a/lib/config/routes.dart b/lib/config/routes.dart index 2f120cd..86e5b5f 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -1,9 +1,5 @@ import 'package:mc_common_app/models/user/register_user.dart'; -// import 'package:mc_common_app/views/settings/create_services_page.dart'; -// import 'package:mc_common_app/views/settings/dealership_page.dart'; -// import 'package:mc_common_app/views/settings/define_branch_page.dart'; -// import 'package:mc_common_app/views/settings/define_license_page.dart'; import 'package:mc_common_app/views/user/change_email_page.dart'; import 'package:mc_common_app/views/user/change_mobile_page.dart'; import 'package:mc_common_app/views/user/change_password_page.dart'; @@ -16,10 +12,6 @@ import 'package:mc_common_app/views/user/login_method_selection_page.dart'; import 'package:mc_common_app/views/user/login_verification_page.dart'; import 'package:mc_common_app/views/user/login_verify_account_page.dart'; import 'package:mc_common_app/views/user/login_with_password_page.dart'; - -// import 'package:mc_common_app/views/user/profile/profile_1_page.dart'; -// import 'package:mc_common_app/views/user/profile/profile_2_page.dart'; -// import 'package:mc_common_app/views/user/profile/profile_3_page.dart'; import 'package:mc_common_app/views/user/register_page.dart'; import 'package:mc_common_app/views/user/register_provider_page.dart'; import 'package:mc_common_app/views/user/register_selection_page.dart'; @@ -53,6 +45,7 @@ class AppRoutes { static const String dashboard = "/dashboard"; static const String bookProviderAppView = "/bookProviderAppView"; static const String appointmentDetailView = "/appointmentDetailView"; + static const String selectAdTypeView = "/selectAdTypeView"; static const String adsDetailView = "/adsDetailView"; static const String createAdView = "/createAdView"; static const String bookAppointmenServicesView = "/bookAppointmenServicesView"; @@ -68,31 +61,31 @@ class AppRoutes { static const String providerProfilePage = "/providerProfilePage"; - // Subcriptions - static final String mySubscriptionsPage = "/mySubscriptionsPage"; - static final String subscriptionsPage = "/subscriptionsPage"; + // Subscriptions + static const String mySubscriptionsPage = "/mySubscriptionsPage"; + static const String subscriptionsPage = "/subscriptionsPage"; static const String initialRoute = splash; static final Map routes = { //User splash: (context) => const SplashPage(), - registerSelection: (context) => RegisterSelectionPage(), + registerSelection: (context) => const RegisterSelectionPage(), loginVerifyAccount: (context) => LoginVerifyAccountPage(), - registerCustomer: (context) => RegisterCustomerPage(), - registerProvider: (context) => RegisterProviderPage(), - forgetPassword: (context) => ForgetPasswordPage(), + registerCustomer: (context) => const RegisterCustomerPage(), + registerProvider: (context) => const RegisterProviderPage(), + forgetPassword: (context) => const ForgetPasswordPage(), loginVerification: (context) => const LoginVerificationPage(), - loginWithPassword: (context) => LoginWithPassword(), + loginWithPassword: (context) => const LoginWithPassword(), loginMethodSelection: (context) => LoginMethodSelectionPage(ModalRoute.of(context)!.settings.arguments as String), completeProfile: (context) => CompleteProfilePage(ModalRoute.of(context)!.settings.arguments as RegisterUserRespModel), verifyPassword: (context) => VerifyPasswordPage(), confirmNewPasswordPage: (context) => ConfirmNewPasswordPage(ModalRoute.of(context)!.settings.arguments as String), - changePassword: (context) => ChangePasswordPage(), + changePassword: (context) => const ChangePasswordPage(), forgetPasswordMethodPage: (context) => ForgetPasswordMethodPage(ModalRoute.of(context)!.settings.arguments as String), changeMobilePage: (context) => ChangeMobilePage(), changeEmailPage: (context) => const ChangeEmailPage(), - editAccountPage: (context) => EditAccountPage(), + editAccountPage: (context) => const EditAccountPage(), }; } diff --git a/lib/repositories/ads_repo.dart b/lib/repositories/ads_repo.dart index f4d1520..50bdb57 100644 --- a/lib/repositories/ads_repo.dart +++ b/lib/repositories/ads_repo.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:mc_common_app/api/api_client.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; @@ -300,6 +302,7 @@ class AdsRepoImp implements AdsRepo { postParams, token: token, ); + log ("value: ${adsGenericModel}"); return Future.value(adsGenericModel); } diff --git a/lib/views/advertisement/select_ad_type_view.dart b/lib/views/advertisement/select_ad_type_view.dart new file mode 100644 index 0000000..93959f1 --- /dev/null +++ b/lib/views/advertisement/select_ad_type_view.dart @@ -0,0 +1,122 @@ +import 'package:flutter/material.dart'; +import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/extensions/int_extensions.dart'; +import 'package:mc_common_app/extensions/string_extensions.dart'; +import 'package:mc_common_app/models/advertisment_models/vehicle_details_models.dart'; +import 'package:mc_common_app/theme/colors.dart'; +import 'package:mc_common_app/view_models/ad_view_model.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:sizer/sizer.dart'; + +class SelectAdTypeView extends StatelessWidget { + final bool isProvider; + + const SelectAdTypeView({ + Key? key, + this.isProvider = true, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: CustomAppBar( + title: "Select Ad Type", + profileImageUrl: MyAssets.bnCar, + isRemoveBackButton: false, + isDrawerEnabled: false, + ), + body: Column( + children: [ + Expanded( + child: Consumer(builder: (BuildContext context, AdVM adVM, Widget? child) { + return ListView.separated( + itemCount: adVM.vehicleTypes.length, + itemBuilder: (BuildContext context, int index) { + VehicleTypeModel vehicleTypeModel = adVM.vehicleTypes[index]; + return SizedBox( + width: double.infinity, + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + vehicleTypeModel.vehicleTypeName.toString().toText(fontSize: 16, isBold: true), + Row( + children: [ + "Duration: ".toText(fontSize: 12, color: MyColors.lightTextColor, isBold: true), + "7 Days".toText(fontSize: 13, isBold: true), + const Icon(Icons.keyboard_arrow_down_sharp, color: MyColors.darkPrimaryColor, size: 20), + ], + ).paddingOnly(top: 5, bottom: 5), + Row( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + "1056".toText(fontSize: 22, isBold: true), + 2.width, + Padding( + padding: const EdgeInsets.only(bottom: 4), + child: "SAR".toText(fontSize: 12, color: MyColors.lightTextColor, isBold: true), + ), + ], + ), + ], + ), + ), + ], + ), + ).toWhiteContainer(width: double.infinity, allPading: 10); + }, + separatorBuilder: (BuildContext context, int index) { + return 9.height; + }, + padding: const EdgeInsets.all(20), + ); + }), + ), + if (isProvider) ...[ + SizedBox( + height: 12.h, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + "5 of 10 ".toText(fontSize: 29, isBold: true, letterSpacing: 0, height: 1), + "Ads Remaining ".toText(fontSize: 17, color: MyColors.lightTextColor, isBold: true), + ], + ), + const Text.rich( + TextSpan( + children: [ + TextSpan( + text: "You have left with 05 out of 50 ads given in the subscription. ", + style: TextStyle( + fontSize: 14, + color: MyColors.lightTextColor, + )), + TextSpan( + text: "Update Subscription", + style: TextStyle( + decoration: TextDecoration.underline, + fontSize: 14, + fontWeight: FontWeight.w600, + color: MyColors.darkPrimaryColor, + )) + ], + ), + ) + ], + ).toContainer(paddingAll: 20, backgroundColor: Colors.white), + ), + ] + ], + ), + ); + } +} diff --git a/pubspec.lock b/pubspec.lock index b41a13e..e95be15 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -261,38 +261,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.2.2" - geocoding: - dependency: "direct main" - description: - name: geocoding - sha256: b34c0501bbbaf3190b85bef3078b27cf66c28a8915c6d3af50d67f356aa7da31 - url: "https://pub.dev" - source: hosted - version: "2.1.0" - geocoding_android: - dependency: transitive - description: - name: geocoding_android - sha256: "5a1fc0cec9b0497b44ca31c1fa8d1c891f3aded1053e6bb2eac075d3bd1bf046" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - geocoding_ios: - dependency: transitive - description: - name: geocoding_ios - sha256: c85495ce8fb34e4fbd2dd8fc5f79263d622d9f88c4af948c965daf6b27a7f3a1 - url: "https://pub.dev" - source: hosted - version: "2.1.0" - geocoding_platform_interface: - dependency: transitive - description: - name: geocoding_platform_interface - sha256: "8848605d307d844d89937cdb4b8ad7dfa880552078f310fa24d8a460f6dddab4" - url: "https://pub.dev" - source: hosted - version: "2.0.1" geolocator: dependency: "direct main" description: @@ -377,10 +345,10 @@ packages: dependency: "direct main" description: name: hexcolor - sha256: e572c3346f4b26422a281dc4c10f83022131f56f7364837671b50f53c7adc5e7 + sha256: c07f4bbb9095df87eeca87e7c69e8c3d60f70c66102d7b8d61c4af0453add3f6 url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "3.0.1" http: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 3e04e24..e328d29 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -29,7 +29,7 @@ dependencies: auto_size_text: any shimmer: ^2.0.0 local_auth: any - hexcolor: ^2.0.4 + hexcolor: ^3.0.1 cached_network_image: any url_launcher: ^6.1.7 badges: ^3.0.2 @@ -40,7 +40,7 @@ dependencies: # google google_maps_flutter: ^2.1.1 geolocator: any - geocoding: any +# geocoding: ^2.1.0 dev_dependencies: