dismissDialog<T extends Object?> static method
Implementation
static Future<void> dismissDialog<T extends Object?>(DialogShower? dialog, {String? key, T? result}) async {
// dismiss from top to bottom if dialog in list
Future<void> deleteWithDismiss(DialogShower dialog) async {
List<DialogShower> tmp = [..._list()];
for (int i = tmp.length - 1; i >= 0; i--) {
DialogShower d = tmp.elementAt(i);
deleteInRepo(d);
await _dismiss<T>(d, result: result);
if (d == dialog) {
break;
}
}
}
if (dialog != null && (_list().contains(dialog))) {
await deleteWithDismiss(dialog);
}
if (key != null && (dialog = _map()[key]) != null) {
await deleteWithDismiss(dialog!);
}
}