buildListView method

ListView buildListView(
  1. List? listData,
  2. BuildContext context
)

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(),
    );
  }
}