promise<T> method

String promise<T>(
  1. Future<T> future, {
  2. required String loading,
  3. required String success(
    1. T
    ),
  4. required String error(
    1. Object
    ),
  5. String? title,
  6. ToastPosition? position,
})

Implementation

String promise<T>(
  Future<T> future, {
  required String loading,
  required String Function(T) success,
  required String Function(Object) error,
  String? title,
  ToastPosition? position,
}) {
  final id = this.loading(loading, title: title, position: position);

  future.then((result) {
    update(
        id,
        (t) => t.copyWith(
              message: success(result),
              variant: ToastVariant.success,
              duration: 4000,
              dismissible: true,
            ));
  }).catchError((e) {
    update(
        id,
        (t) => t.copyWith(
              message: error(e),
              variant: ToastVariant.error,
              duration: 6000,
              dismissible: true,
            ));
  });

  return id;
}