134. ViewThatFits + @State
Недавно чинил любопытный баг, который оказался очень простым на деле, но нейросеть исправить его не смогла
Постановка и демо
На главном экране в приложении 2 варианта UI: для широкого экрана (например, для iPad) и для узкого экрана (для iPhone). На этом экране можно открыть модальное окно с важной функциональностью, а для поддержки двух вариантов UI используется ViewThatFits (удобная штука для iOS 16+), но при повороте экрана на айфоне эта модалка закрывается сама:
Причина бага
Проблема возникает из-за хранения @State-свойства для модального окна внутри дочерней вьюхи, которая используется в обоих вариантах UI, а при повороте экрана ViewThatFits приводит к частичному сбросу состояний дочерних вьюх, которые исчезают.
Почему сброс частичный? Потому что на девайсе при повороте экрана модалка закрывалась, а при повороте обратно - сама появлялась, но не каждый раз
Код для этого случая можно посмотреть в гитхабе.