8000 fix(ChipsSelect): fix closing dropdown when placement change by EldarMuhamethanov · Pull Request #8454 · VKCOM/VKUI · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

fix(ChipsSelect): fix closing dropdown when placement change #8454

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

EldarMuhamethanov
Copy link
Contributor

  • Release notes

Описание

Если ChipsSelect близко к нижнему краю страницы, то как только выбирается итем, который переносит контент на следующую строку и сдвигает всплывающую область вниз, всплывающая область пытается отразиться наверх, на пол секунды у неё получается, но потом она просто закрывается. Тот же баг есть, если наверху не хватает места, и он пытается отражаться вниз.

Поисследовал проблему, оказалось, что:

  • При mousedown на опцию, она сразу добавляется
  • Происходит перерисовка и высота инпута увеличивается
  • Дропдаун не помещается и отзеркаливается
  • При отпускании мыши срабатывает onClick, который уже срабатывает за пределами дропдауна
  • Срабатывает закрытие дропдауна, потому что клик за пределами

Изменения

Добавил флаг forbidCloseByOutsideClick, который устанавливается в true при mousedown на опцию, и запрещает закрывать дропдаун по событию click за пределами. Когда срабатывает обработчик click за пределами флаг сбрасывается в false. В результате дропдаун не закрывается

Release notes

Исправления

  • ChipsSelect: Поправлен баг с закрытием дропдауна при отзеркаливании

@EldarMuhamethanov EldarMuhamethanov requested a review from a team as a code owner April 10, 2025 16:21
@github-actions github-actions bot added the ci:cherry-pick:patch Автоматизация: PR продублируется в ветку последнего минорного релиза для выпуска патча label Apr 10, 2025
Copy link
Contributor

size-limit report 📦

Path Size
JS 403.3 KB (+0.02% 🔺)
JS (gzip) 119.9 KB (+0.03% 🔺)
JS (brotli) 98.52 KB (+0.05% 🔺)
JS import Div (tree shaking) 1.56 KB (0%)
CSS 348.95 KB (0%)
CSS (gzip) 43.23 KB (0%)
CSS (brotli) 34.49 KB (0%)

Copy link

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Copy link
Contributor

e2e tests

⚠️ Some screenshots were failed. See Playwright Report.

Playwright Report

Copy link
Contributor

👀 Docs deployed

Commit 941f9b6

Copy link
Contributor
@andrey-medvedev-vk andrey-medvedev-vk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А не исследовал почему там onMouseDown, а не onClick? Нельзя ли конкретно логику добавления на click повесить?

@EldarMuhamethanov
Copy link
Contributor Author

А не исследовал почему там onMouseDown, а не onClick? Нельзя ли конкретно логику добавления на click повесить?

Я руководствовался тем, что обычно onMouseDown не вешают просто так, скорее всего это было сделано специально

@EldarMuhamethanov EldarMuhamethanov merged commit de56b37 into master Apr 11, 2025
27 checks passed
@EldarMuhamethanov EldarMuhamethanov deleted the e.muhamethanov/6772/fix-close-dropdown-when-change-placement branch April 11, 2025 07:46
@vkcom-publisher
Copy link
Contributor

❌ Patch

Не удалось автоматически применить исправление на ветке 7.2-stable.

Дальнейшие действия выполняют контрибьютеры из группы @VKCOM/vkui-core

Чтобы изменение попало в ветку 7.2-stable, выполните следующие действия:

  1. Создайте новую ветку от 7.2-stable и примените изменения используя cherry-pick
git stash # опционально
git fetch origin 7.2-stable
git checkout -b patch/pr8454 origin/7.2-stable

git cherry-pick --no-commit de56b37d582585cdfaae0266d52934a9bace07e4
git checkout HEAD **/__image_snapshots__/*.png
git diff --quiet HEAD || git commit --no-verify --no-edit
  1. Исправьте конфликты, следуя инструкциям из терминала
  2. Отправьте ветку на GitHub и создайте новый PR с веткой 7.2-stable (установка лейбла не требуется!)
git push --set-upstream origin patch/pr8454
gh pr create --base 7.2-stable --title "patch: pr8454" --body "- patch #8454"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci:cherry-pick:patch Автоматизация: PR продублируется в ветку последнего минорного релиза для выпуска патча
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: Всплывающая часть ChipsSelect закрывается вместо зеркального отражения
4 participants
0