-
Notifications
You must be signed in to change notification settings - Fork 198
[Feature][PanelHeader]: заменить FixedLayout на position: sticky #9251
Description
Проблема
PanelHeader сейчас тащит проблемы компонента FixedLayout:
- [Bug][PanelHeader]: Некорректная позиция after на первом рендере #6588
- [Bug][FixedLayout] Сломана центровка внутри
View>Panelна устройствах с бровкой вlandscapeрежиме #2422 - [Bug]: FixedLayout влечет за собой reflow #5414
- [Bug]: PanelHeader: включать боковые отступы на основе area-insets в fixed режиме только на iOS платформе. #8115
В общем те же баги, что по эпику с проблемами FixedLayout #5414.
Решение
Если заменить FixedLayout на position: sticky, то львиная доля проблем закроется. Но у position: sticky есть свои нюансы, из-за которых просто заменить не получиться.
Необходимо будет избавиться от height: 100% у html и body иначе стики элемент, в часности, при <SplitLayout header={<PanelHeader delimiter="none" />} />, будет застревать в области VisualViewport (см. #6609 (comment)).
К сожалению, попытка переписать fixed на sticky снова (см. #6609) не удалась. В частности, при тестировании релиз кандидата на https://m.vk.ru, всплыли критические проблемы, которые не исправить без изменений раскладки, без изменений глобальных стилей.
Пришли к тому, что будем откатывать #9251.
Компоненты PanelHeader, SplitLayout, SplitCol, как и FixedLayout, за время существования VKUI: слишком усложнились; стали прикладными; многие проекты завязаны на их текущую реализацию, которая была рабочей в ранние годы библиотеки – это не позволяет провести рефактор.
Ничего не остаётся как депрекейтить их в будущем, а вместо них предоставить более простые компоненты. Например, SplitLayout и SplitCol…
Metadata
Metadata
Assignees
Type
Projects
Status