dismissSnackbarAtPosition static method
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');
}
}
}