submitAndRefresh method

Future<void> submitAndRefresh({
  1. required DataSubmitter<F> dataSubmitter,
  2. Duration timeout = const Duration(seconds: 10),
})

Implementation

Future<void> submitAndRefresh({
  required DataSubmitter<F> dataSubmitter,
  Duration timeout = const Duration(seconds: 10),
}) async {
  if (fetchCubit == null) {
    emit(SubmitFailed('$technicalErrorMessage : fetchCubit = null'));
    return;
  }

  final result = await _submit(dataSubmitter: dataSubmitter);
  if (!isClosed) {
    emit(switch (result) {
      DataSubmitSucceed() ||
      DataSubmitSucceedEmpty() =>
        SubmitSucceed(result.message),
      DataSubmitFailed() => SubmitFailed(
          result.message,
          exception: result.exception,
        ),
    });

    if (result is DataSubmitSucceed<F>) {
      fetchCubit!.refreshWithoutFetch(data: result.data);
    }
  }
}