dismissSnackbarAtPosition static method

void dismissSnackbarAtPosition(
  1. Alignment position
)

Dismisses snackbars at a specific position

Useful when using staggered or queued snackbar display modes to clear notifications at a particular screen position.

Example:

Modal.dismissSnackbarAtPosition(Alignment.topCenter);

Implementation

static void dismissSnackbarAtPosition(Alignment position) {
  final currentQueueMap = _snackbarQueueNotifier.state;
  if (currentQueueMap.containsKey(position)) {
    // CAPTURE IDs of all snackbars being dismissed at this position
    final dismissedIds =
        currentQueueMap[position]!.map((s) => s.uniqueId).toList();
    if (_showDebugPrints) {
      debugPrint(
          'Modal.dismissSnackbarAtPosition: position=$position, dismissing IDs: $dismissedIds');
    }

    final updatedQueueMap =
        Map<Alignment, List<_ModalContent>>.from(currentQueueMap);
    updatedQueueMap.remove(position);
    _snackbarQueueNotifier.state = updatedQueueMap;

    // Unregister dismissed snackbars from modal registry
    final updatedRegistry = Map<String, ModalType>.from(_modalRegistry.state);
    for (final id in dismissedIds) {
      updatedRegistry.remove(id);
    }
    _modalRegistry.state = updatedRegistry;

    // If this was the only position with snackbars, clear the main modal
    if (updatedQueueMap.isEmpty &&
        Modal.isActive &&
        Modal.controller.state?.modalType == ModalType.snackbar) {
      Modal.controller.refresh();
    }

    if (_showDebugPrints) {
      debugPrint(
          'Modal.dismissSnackbarAtPosition: completed dismissing IDs: $dismissedIds');
    }
  }
}