Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(Snackbar/AppRootPortal): fix default shouldDisablePortalLogic in …
…AppRootPortal (#6389) В рефакторинге AppRootPortal в c7e4c41 мы инверсировали логику использования портала и там закралась ошибка в значении по умолчанию. До рефакторинга мы использовали портал если `mode !== 'full'`, https://github.com/VKCOM/VKUI/blob/7f1888d54ca8fb08a0a8d8d3697f0a19ccab6d19/packages/vkui/src/components/AppRoot/AppRootPortal.tsx#L35-L42 а теперь выключаем портал если `mode !== 'full'`. https://github.com/VKCOM/VKUI/blob/959611e24e6168643ff409d8db08a585825d030f/packages/vkui/src/components/AppRoot/AppRootPortal.tsx#L38-L51 Эта ошибка повлекла за собой по крайней мере неверное позиционирование Snackbar, когда речь идёт о Snackbar + Tabbar у Epic в режиме миниапов (`mode="full"`). Snackbar рендерился используя портал, тем самым выпадая из селектора, задающего отступ. Возможно, что нам тут даже не стоит полагаться на селектор вовсе и читать информацию о наличии tabbar из контекста, определяя размер экрана в котором tabbar рендерится внизу. В то же время Epic это больше о мобильных экранах. Тем не менее ошибка в AppRootPortal есть. Изменения - Поправил условие для режима `full` по умолчанию. Покрыл тестами. - обернул children в React.Fragment чтобы ts не ругался на типы AppRootPortal. ``` 'AppRootPortal' cannot be used as a JSX component. Its return type 'ReactNode' is not a valid JSX element. (tsserver 2786) ```
- Loading branch information