dismiss method

Future<T?> dismiss([
  1. T? result
])

Dismisses the AwesomeMessage causing is to return a future containing result. When this future finishes, it is guaranteed that AwesomeMessage was dismissed.

Implementation

Future<T?> dismiss([T? result]) async {
  // If route was never initialized, do nothing
  if (_awesomeMessageRoute == null) {
    return null;
  }

  if (_awesomeMessageRoute!.isCurrent) {
    _awesomeMessageRoute?.navigator?.pop(result);
    return _awesomeMessageRoute?.completed;
  } else if (_awesomeMessageRoute!.isActive) {
    // removeRoute is called every time you dismiss a AwesomeMessage that is not the top route.
    // It will not animate back and listeners will not detect AwesomeMessageStatusStatus.IS_HIDING or AwesomeMessageStatusStatus.DISMISSED
    // To avoid this, always make sure that AwesomeMessage is the top route when it is being dismissed
    _awesomeMessageRoute?.navigator?.removeRoute(_awesomeMessageRoute!);
  }

  return null;
}