fix(SidePage): fix overlay when changing desktop->mobile->desktop #3292
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Проблема
При переключении адаптива компонент с вуалью перемонтировался, из-за чего инкрементил z-index в рамках своей "группы".
Вуаль и SidePage находятся в одной группе приоритетности z-index'ов -
Sidepage: 9
.ZIndex
вычисляет для нового объектаz-index
так:последний z-index в группе
+delta
.При первом рендере как desktop,
SidePage
сначала монтирует вуаль и затем основной контент. Оба элемента обёрнуты в ZIndex.Следовательно, вуаль всегда находится под основным контентом.
Затем, при срабатывании условия
isMobile
, вуаль удаляется, и грубо говоря забывает про свой предыдущийz-index
.А когда, возвращается десктопное отображение, вуаль монтируется заново, и теперь уже она над основным контентом.
Основной контент не удаляется, а просто меняет стиль отображение. Поэтому он помнит свой
z-index
.Решение
Проще всего переверстать так, чтобы вуаль тоже не удалялась при смене отображения.
Ссылки
IF-1487
Чек-лист перед запросом ревью
Добавлены тесты на все изменения
⬜ unit-тесты для логики
⬜ скриншоты для верстки и кросс-браузерности
✅ нерелевантно
Добавлена (обновлена) документация
⬜ styleguidist для пропов и примеров использования компонентов
⬜ jsdoc для утилит и хелперов
⬜ комментарии для неочевидных мест в коде
⬜ прочие инструкции (
README.md
,contributing.md
и др.)✅ нерелевантно
Изменения корректно типизированы
⬜ без использования
any
(см. PR2856
)✅ нерелевантно
Прочее
✅ все тесты и линтеры на CI проходят
✅ в коде нет лишних изменений
✅ заголовок PR кратко и доступно отражает суть изменений (он попадет в changelog)