rewardProviderCategory method

Widget rewardProviderCategory({
  1. required Widget onBuild(
    1. List<RewardsModel> pendings,
    2. List<RewardsModel> collected,
    3. List<RewardsModel> expired
    ),
  2. Widget buildLoading()?,
})

Implementation

Widget rewardProviderCategory(
    {required Widget Function(
      List<RewardsModel> pendings,
      List<RewardsModel> collected,
      List<RewardsModel> expired,
    ) onBuild,
    Widget Function()? buildLoading}) {
  return FutureBuilder<CategoryRewards?>(
    future: RewardHelper.fetchRewardsCategorized(),
    initialData: null,
    builder: (context, snapshot) {
      if (snapshot.hasError) {
        return Center(
          child: Text("Error Fetching Rewards"),
        );
      }
      if (!snapshot.hasData) {
        if (buildLoading != null) return buildLoading();
        return Center(
          child: CircularProgressIndicator(),
        );
      }
      return onBuild(
        snapshot.data?.pendingRewards ?? [],
        snapshot.data?.collectedRewards ?? [],
        snapshot.data?.expiredRewards ?? [],
      );
    },
  );
}