dismissByIds method

Future<List<String>> dismissByIds(
  1. List<String> ids, {
  2. VoidCallback? onDismissed,
})

Dismisses multiple modals by their IDs

This method attempts to dismiss each modal in the provided list of IDs. It's useful when you need to clean up multiple modals at once.

Parameters:

  • ids: List of modal IDs to dismiss
  • onDismissed: Optional callback executed after all modals are dismissed

Returns a list of IDs that were successfully dismissed.

Example:

final dismissed = await Modal.dismissByIds(['modal1', 'modal2', 'modal3']);
print('Dismissed: $dismissed');

Implementation

Future<List<String>> dismissByIds(List<String> ids,
    {VoidCallback? onDismissed}) async {
  if (_showDebugPrints) {
    debugPrint('Modal.dismissByIds: dismissing IDs: $ids');
  }
  final dismissedIds = <String>[];

  for (final id in ids) {
    final wasFound = await dismissById(id);
    if (wasFound) {
      dismissedIds.add(id);
    }
  }

  onDismissed?.call();
  if (_showDebugPrints) {
    debugPrint('Modal.dismissByIds: successfully dismissed: $dismissedIds');
  }
  return dismissedIds;
}