Объясните правила хуков. Почему нельзя вызывать хуки внутри условий?
Хуки должны вызываться на верхнем уровне компонента или кастомного хука и в одинаковом порядке на каждом рендере. React хранит состояние хуков в массиве, индексируемом порядком вызова, поэтому условный хук сдвигает все последующие индексы, и компонент начинает читать состояние чужого хука. Именно поэтому существует правило линтера — падение здесь тихое и крайне запутанное.