|
|
|
|
@ -6,14 +6,24 @@ import 'package:mc_common_app/extensions/string_extensions.dart';
|
|
|
|
|
import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart';
|
|
|
|
|
import 'package:mc_common_app/theme/colors.dart';
|
|
|
|
|
import 'package:mc_common_app/utils/navigator.dart';
|
|
|
|
|
import 'package:mc_common_app/utils/utils.dart';
|
|
|
|
|
import 'package:mc_common_app/view_models/ad_view_model.dart';
|
|
|
|
|
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
|
|
class BuildAdsList extends StatelessWidget {
|
|
|
|
|
final List<AdDetailsModel> adsList;
|
|
|
|
|
final ScrollPhysics? scrollPhysics;
|
|
|
|
|
final bool isAdsFragment;
|
|
|
|
|
final bool shouldShowAdStatus;
|
|
|
|
|
|
|
|
|
|
const BuildAdsList({Key? key, required this.adsList, this.scrollPhysics, this.isAdsFragment = false}) : super(key: key);
|
|
|
|
|
const BuildAdsList({
|
|
|
|
|
Key? key,
|
|
|
|
|
required this.adsList,
|
|
|
|
|
this.scrollPhysics,
|
|
|
|
|
required this.shouldShowAdStatus,
|
|
|
|
|
this.isAdsFragment = false,
|
|
|
|
|
}) : super(key: key);
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
@ -32,7 +42,11 @@ class BuildAdsList extends StatelessWidget {
|
|
|
|
|
itemBuilder: (BuildContext context, int index) {
|
|
|
|
|
return Padding(
|
|
|
|
|
padding: const EdgeInsets.only(bottom: 8),
|
|
|
|
|
child: AdCard(adDetails: adsList[index]),
|
|
|
|
|
child: AdCard(
|
|
|
|
|
adDetails: adsList[index],
|
|
|
|
|
isAdsFragment: isAdsFragment,
|
|
|
|
|
shouldShowAdStatus: shouldShowAdStatus,
|
|
|
|
|
),
|
|
|
|
|
).onPress(() {
|
|
|
|
|
navigateWithName(context, AppRoutes.adsDetailView, arguments: adsList[index]);
|
|
|
|
|
});
|
|
|
|
|
@ -42,8 +56,10 @@ class BuildAdsList extends StatelessWidget {
|
|
|
|
|
|
|
|
|
|
class AdCard extends StatelessWidget {
|
|
|
|
|
final AdDetailsModel adDetails;
|
|
|
|
|
final bool isAdsFragment;
|
|
|
|
|
final bool shouldShowAdStatus;
|
|
|
|
|
|
|
|
|
|
const AdCard({Key? key, required this.adDetails}) : super(key: key);
|
|
|
|
|
const AdCard({Key? key, required this.adDetails, required this.isAdsFragment, required this.shouldShowAdStatus}) : super(key: key);
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
@ -79,6 +95,12 @@ class AdCard extends StatelessWidget {
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
if (isAdsFragment && context.read<AdVM>().isExploreAdsTapped) ...[
|
|
|
|
|
Utils.statusContainerChip(text: adDetails.statuslabel!, chipColor: Utils.getChipColorByAdStatus(adDetails.adPostStatus!)),
|
|
|
|
|
],
|
|
|
|
|
if (shouldShowAdStatus) ...[
|
|
|
|
|
Utils.statusContainerChip(text: adDetails.statuslabel!, chipColor: Utils.getChipColorByAdStatus(adDetails.adPostStatus!)),
|
|
|
|
|
],
|
|
|
|
|
(adDetails.vehicle!.vehicleTitle ?? "").toText(fontSize: 16, isBold: true),
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
|