Сначала хотелось обойтись малой кровью, но похоже не получится. Я думал в нативе предусмотрены такие вещи. Спрашивал нативщиков, кто под iOS пишет, но они вообще удивились этому кейсу, когда 20-30 алертов друг на друге. В андроиде, к счастью, старый dialog закрывается автоматически системой и только потом открывает новый.
Про AppAlertQueue в js я тоже размышлял, но это целый сервис писать нужно вместо Alert.alert()
:)
Спасибо.
Вообще эта ситуация может служить подсказкой, что это не совсем удачный вариант UI для решаемых проблем. Ведь алерт обычно подразумевает явное действие пользователя (да ещё с максимальным привлечением внимания) по закрытию, часто вариант выбора. И в этом контексте система не должна его закрывать, напротив, для пользователя все остальные процессы в приложении должны бы остановиться... Это не значит, что алерт нельзя прервать, это значит, что ситуация прерывания алерта должна рассматриваться как редкая и исключительная.
Когда алерты не требуют решения от пользователя и не прерывают работу, это скорее оповещения, так их и надо через toast или snackbar или ещё каким не сильно мешающим работе способом показывать. Тем более когда их может быть 20-30 )