build method

  1. @override
Future<List<T>> build({
  1. String? uid,
})

Implementation

@override
Future<List<T>> build({String? uid}) async {
  state = const AsyncValue.loading();

  if (uid == null) {
    var items = await AsyncValue.guard(() => getAllItems());
    state = items.when(
      data: (data) => AsyncValue.data(data),
      loading: () => const AsyncValue.loading(),
      error: (error, stackTrace) => AsyncValue.error(error, stackTrace),
    );
  } else {
    var item = await AsyncValue.guard(() => getItemByUid(uid));
    state = item.when(
      data: (data) =>
          data != null ? AsyncValue.data([data]) : const AsyncValue.data([]),
      loading: () => const AsyncValue.loading(),
      error: (error, stackTrace) => AsyncValue.error(error, stackTrace),
    );
  }
  // AsyncValue item = await AsyncValue.guard(() => getItemByUid(uid));

  return await future;
}