Один на все приложение, может вызываться из разных мест.
- Работает по принципу синглтона. Если полинг уже вызван - то запустить такой же поллинг не получится.
- Пока не закончен предыдущий запрос в полинге (getBalance), новый вызываться не будет. Плюс есть задержка перед новым запросом в 3сек.
- Поллинг запускается, не трогая, флаг isLoading в стейте баланса, что избавляет от бага "мигания" (смена лоадера на контент) на странице баланса.
- Если поллинг отработал свои 20 запросов - то при повторном его вызове он снова запустится.
- Если баланс сделок становится > 0 - то поллинг останавливается.
- То запускается поллинг баланса.
- Под статусом появляется предупреждение.
- Останавливается поллинг.
- В UI статут сделки меняется на "ReadyToSend".
- Пропадает предупреждение.
- Появляется кнопки для переотправки.
- Статус меняется на "Sending".
- Пропадает предупреждение под статусом.
- Пропадает Кнопка переотправки.
- Появляются надпись ошибки "Что-то пошло не так" рядом с кнопками
- Запускается поллинг.
- Остановка поллинга.
- Все драфты со статусом "WaitingServicePayment" становятся "ReadyToSend".