fix(web): панели не уезжают за экран (правка после замечания линтера)

Позиционирование переведено на прямые стили и класс `gl-anchored-panel`:
React не управляет left/top/max-height, поэтому повторный рендер не сбрасывает
раскладку, а `data-placement` задаёт направление анимации (панель может
развернуться вниз, если сверху мало места). Линтер по хукам чистый, 289 тестов
зелёные.
This commit is contained in:
2026-09-20 14:36:32 +03:00
parent 494589ffca
commit 389fdd5f9a
5 changed files with 83 additions and 76 deletions
+26
View File
@@ -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 {