Конечный автомат моделирует систему как конечный набор состояний плюс допустимые переходы между ними. Вместо того чтобы жонглировать независимыми булевыми флагами, вы точно определяете, какие состояния существуют и какие переходы разрешены — делая невозможные состояния нереализуемыми.
Проблема: булевы флаги кишмя кишат
[isLoading, setLoading] = ();
[isError, setError] = ();
[isSuccess, setSuccess] = ();
