close method

  1. @override
Future<bool> close()
override

Attempts to close the modal.

Returns a future that completes with true if it succeeds.

Implementation

@override
Future<bool> close() {
  if (_pendingClose == null) {
    final controller = AsyncActionController<dynamic>();
    controller.execute(_hideModalOverlay);
    _pendingClose = controller.action!.onDone.then((completed) {
      _pendingClose = null;
      if (completed == null) {
        return false;
      }

      if (completed is bool) {
        return completed;
      }
      return false;
    });
    _onClose.add(controller.action);
  }
  return _pendingClose ?? Future.value(false);
}