dismissCurrentModal method

Future<void> dismissCurrentModal({
  1. VoidCallback? onModalDismissed,
})

Dismisses the currently active modal

This method handles the complete dismissal process including:

  • Running all registered callbacks
  • Triggering appropriate animations
  • Cleaning up resources after animation completes

Parameters:

  • onModalDismissed: Optional callback that runs when dismissal completes. This is in addition to any callback defined in the ModalContent.

Returns:

  • Future<void> that completes when the dismissal process is finished

Example:

// Simple dismissal
Modal.dismiss();

// Dismissal with a callback
Modal.dismiss(onModalDismissed: () {
  print('Modal has been dismissed');
});

Dismisses the currently active modal (dialog or bottom sheet)

Does NOT dismiss snackbars. If a snackbar is active, calling this will dismiss the snackbar. If no modal is active, this does nothing.

Example:

Modal.dismissCurrentModal();

Implementation

Future<void> dismissCurrentModal({VoidCallback? onModalDismissed}) async {
  final activeId = _activeModalController.state?.uniqueId;
  if (activeId != null) {
    await dismissById(activeId, onDismissed: onModalDismissed);
  }
}