Ещё один практический вопрос по tea-like
архитектурам.
Если мне надо показать пользователям некое интро — размер которого зависит от входных данных. В моём кейсе — перечисление всего текста в виде титров. После этого надо перейти на другой стейт. Как это правильно реализовывать?
Это не user-input, потому что система сама должна понимать когда ей надо переключить стейт. Но этот экран показывается у нескольких пользователей разом, поэтому нужно как-то позаботиться о том, чтобы все пользователи увидели целиком первый стейт, перед переходом ко второму.
Если бы не второе условие, я бы сказал, что достаточно эффектом с таймером покрыть, но вот так вот даже не знаю.
И в целом, получается, что если завязываться на эффект, то UI будет получать время на отображение, а дальше пытаться успеть отобразить? 🤔
Есть ещё вариант сделать некий флаг от каждого пользователя — просмотрел он или нет, и лишь когда от всех пользователей прилетит экшн о том, что они досмотрели — переходить к следующему. 🤔
В TEA как раз есть такая штука как subscription, по сути это обсервабл, которые при эмите каких то данных плюется месседжом. Тот же таймер канонично через нее делать. Ну т.е. все события от окружающей среды, которые непосредственно от пользака не зависят оборачиваются в subscription