open method

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

Attempts to open the modal.

Returns a future that completes with true if it succeeds.

Implementation

@override
Future<bool> open() {
  if (_pendingOpen == null) {
    final controller = AsyncActionController<dynamic>();
    controller.execute(_showModalOverlay);
    _pendingOpen = controller.action!.onDone.then((completed) {
      _pendingOpen = null;

      if (completed == null) {
        return false;
      }

      if (completed is bool) {
        return completed;
      }
      return false;
    });
    _onOpen.add(controller.action);
  }

  return _pendingOpen ?? Future.value(false);
}