fix(web): панели не уезжают за экран (правка после замечания линтера)
Позиционирование переведено на прямые стили и класс `gl-anchored-panel`: React не управляет left/top/max-height, поэтому повторный рендер не сбрасывает раскладку, а `data-placement` задаёт направление анимации (панель может развернуться вниз, если сверху мало места). Линтер по хукам чистый, 289 тестов зелёные.
This commit is contained in:
@@ -175,6 +175,32 @@ body {
|
||||
animation: gl-popover-in var(--duration-fast) var(--ease-out) backwards;
|
||||
}
|
||||
|
||||
/*
|
||||
* Панели, которые позиционирует `useAnchoredPosition`: до замера они скрыты,
|
||||
* после — прижаты к рабочей области по left/top/max-height (задаёт хук).
|
||||
* position: fixed нужен, чтобы панель не уезжала за пределы окна.
|
||||
*/
|
||||
.gl-anchored-panel {
|
||||
position: fixed;
|
||||
z-index: 40;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.gl-anchored-panel[data-positioned='true'] {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
/* Направление анимации берём из data-placement: панель может развернуться. */
|
||||
.gl-anchored-panel[data-placement='top'] {
|
||||
transform-origin: bottom;
|
||||
animation: gl-popover-in var(--duration-fast) var(--ease-out) backwards;
|
||||
}
|
||||
|
||||
.gl-anchored-panel[data-placement='bottom'] {
|
||||
transform-origin: top;
|
||||
animation: gl-popover-down-in var(--duration-fast) var(--ease-out) backwards;
|
||||
}
|
||||
|
||||
/* То же меню, но раскрывающееся вниз (действия у сообщения). */
|
||||
@keyframes gl-popover-down-in {
|
||||
from {
|
||||
|
||||
Reference in New Issue
Block a user