Merge remote-tracking branch 'origin/faiz_development_common' into faiz_development_common

aamir_dev
Faiz Hashmi 1 year ago
commit a97fc8c08d

@ -1,6 +1,8 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:developer'; import 'dart:developer';
import 'dart:io'; import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.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/classes/consts.dart';
@ -32,7 +34,6 @@ import 'package:mc_common_app/utils/utils.dart';
import 'package:mc_common_app/view_models/base_view_model.dart'; import 'package:mc_common_app/view_models/base_view_model.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/widgets/dropdown/dropdow_field.dart'; import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class AdVM extends BaseVM { class AdVM extends BaseVM {
@ -218,6 +219,14 @@ class AdVM extends BaseVM {
notifyListeners(); notifyListeners();
} }
int currentPage = 1;
bool isLoadingMore = false;
bool hasMoreData = true;
fetchMoreAds() async {
}
Future<List<AdDetailsModel>> getAdsByFilter({AdPostStatus? adPostStatus, required bool isMyAds, CreatedByRoleEnum? createdByRoleEnum}) async { Future<List<AdDetailsModel>> getAdsByFilter({AdPostStatus? adPostStatus, required bool isMyAds, CreatedByRoleEnum? createdByRoleEnum}) async {
return await adsRepo.getAllAds(isMyAds: isMyAds, adPostStatus: adPostStatus, createdByRoleEnum: createdByRoleEnum); return await adsRepo.getAllAds(isMyAds: isMyAds, adPostStatus: adPostStatus, createdByRoleEnum: createdByRoleEnum);
} }

@ -1,3 +1,6 @@
import 'dart:developer';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/classes/consts.dart';
@ -12,7 +15,6 @@ import 'package:mc_common_app/utils/utils.dart';
import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:easy_localization/easy_localization.dart';
class AdsListWidget extends StatelessWidget { class AdsListWidget extends StatelessWidget {
final List<AdDetailsModel> adsList; final List<AdDetailsModel> adsList;
@ -21,12 +23,12 @@ class AdsListWidget extends StatelessWidget {
final bool shouldShowAdStatus; final bool shouldShowAdStatus;
const AdsListWidget({ const AdsListWidget({
Key? key, super.key,
required this.adsList, required this.adsList,
this.scrollPhysics, this.scrollPhysics,
required this.shouldShowAdStatus, required this.shouldShowAdStatus,
this.isAdsFragment = false, this.isAdsFragment = false,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -38,21 +40,29 @@ class AdsListWidget extends StatelessWidget {
], ],
); );
} }
return ListView.separated( return NotificationListener<ScrollNotification>(
itemCount: adsList.length, onNotification: (ScrollNotification scrollInfo) {
shrinkWrap: true, if (scrollInfo.metrics.pixels == scrollInfo.metrics.maxScrollExtent && context.read<AdVM>().hasMoreData) {
physics: scrollPhysics, log("should call more ads api:");
itemBuilder: (BuildContext context, int index) { }
return AdCard( return false;
adDetails: adsList[index],
isAdsFragment: isAdsFragment,
shouldShowAdStatus: shouldShowAdStatus,
).onPress(() => navigateWithName(context, AppRoutes.adsDetailView, arguments: adsList[index]));
},
separatorBuilder: (BuildContext context, int index) {
return 12.height;
}, },
padding: const EdgeInsets.symmetric(horizontal: 21), child: ListView.separated(
itemCount: adsList.length,
shrinkWrap: true,
physics: scrollPhysics,
itemBuilder: (BuildContext context, int index) {
return AdCard(
adDetails: adsList[index],
isAdsFragment: isAdsFragment,
shouldShowAdStatus: shouldShowAdStatus,
).onPress(() => navigateWithName(context, AppRoutes.adsDetailView, arguments: adsList[index]));
},
separatorBuilder: (BuildContext context, int index) {
return 12.height;
},
padding: const EdgeInsets.symmetric(horizontal: 21),
),
); );
} }
} }
@ -62,7 +72,7 @@ class AdCard extends StatelessWidget {
final bool isAdsFragment; final bool isAdsFragment;
final bool shouldShowAdStatus; final bool shouldShowAdStatus;
const AdCard({Key? key, required this.adDetails, required this.isAdsFragment, required this.shouldShowAdStatus}) : super(key: key); const AdCard({super.key, required this.adDetails, required this.isAdsFragment, required this.shouldShowAdStatus});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

@ -1,3 +1,4 @@
import 'package:easy_localization/easy_localization.dart';
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/classes/consts.dart';
@ -18,10 +19,9 @@ import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/common_widgets/categories_list.dart'; import 'package:mc_common_app/widgets/common_widgets/categories_list.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:easy_localization/easy_localization.dart';
class AdsFragment extends StatelessWidget { class AdsFragment extends StatelessWidget {
const AdsFragment({Key? key}) : super(key: key); const AdsFragment({super.key});
List<AdDetailsModel> getAdsList(AdVM adVM) { List<AdDetailsModel> getAdsList(AdVM adVM) {
if (adVM.isExploreAdsTapped) { if (adVM.isExploreAdsTapped) {

Loading…
Cancel
Save