buildListView method
Implementation
ListView buildListView(List<dynamic>? listData, BuildContext context) {
if ((groupByField ?? "").isNotEmpty && header != null) {
Map<dynamic, List<dynamic>> dataMap;
if (listData is List<DocumentSnapshot>) {
dataMap = groupBy(listData, (snapshot) {
if (snapshot.data()[groupByField] is Timestamp) {
DateTime? dateTime = utcToLocal(snapshot.data()[groupByField]);
return DateFormat('dd/MM/yyyy')
.parse(DateFormat('dd/MM/yyyy').format(dateTime!));
} else {
return snapshot.data()[groupByField];
}
});
} else {
dataMap = groupBy<dynamic, String?>(listData!, (e) {
Map<String, dynamic> map = e.toJson();
return map[groupByField!];
});
}
return ListView(
children: dataMap.keys.map((e) {
return StickyHeader(
header: header!(e),
content: ListView(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
children: dataMap[e]!.map((e) {
return builder!(context, e);
}).toList(),
),
);
}).toList(),
);
} else {
return ListView(
padding: scrollPadding,
children: listData!.map((e) => builder!(context, e)).toList(),
);
}
}