Выпадающее меню больше не закрывается от любого движения мыши
CI / lint-test (push) Successful in 18s Details
CI / build-push (push) Successful in 21s Details

Между кнопкой и списком был зазор, из-за которого hover срабатывал как выход из группы. Убрал зазор и добавил задержку закрытия 150 мс с отменой при возврате курсора — перейти в пункты меню теперь можно спокойно.
This commit is contained in:
MpakobecEx 2026-10-26 02:05:13 +05:00
parent 73e83e2413
commit 0206ab5212
4 changed files with 16 additions and 7 deletions

View File

@ -171,7 +171,7 @@ make backup E=test # на домашнем сервере: ./scripts/clickho
## Версионирование
- Единый источник версии — `common/version.py` (`__version__`), текущая — `0.6.4`.
- Единый источник версии — `common/version.py` (`__version__`), текущая — `0.6.5`.
- Схема — SemVer-подобная (`MAJOR.MINOR.PATCH`); git-тег = `v` + версия (`v0.1`).
- Docker-образы тегируются версией (Блок 2), события ClickHouse получают `bot_version` (Блок 3).
- Выпуск: изменить `common/version.py` → коммит → аннотированный тег `vX.Y` → `git push --tags`.

View File

@ -36,7 +36,7 @@
Сообщения <span class="text-xs">▾</span>
</button>
<div
class="mt-1 hidden flex-col gap-1 rounded-lg border border-slate-200 bg-white p-2 sm:absolute sm:left-0 sm:top-full sm:z-20 sm:mt-1 sm:min-w-48 sm:shadow-lg"
class="hidden flex-col gap-1 rounded-lg border border-slate-200 bg-white p-2 sm:absolute sm:left-0 sm:top-full sm:z-20 sm:min-w-48 sm:shadow-lg"
data-group-dropdown
>
<a href="/sequences" class="rounded px-3 py-1.5 text-slate-600 hover:bg-slate-100 hover:text-slate-900">Шаблоны</a>
@ -55,7 +55,7 @@
Пользователи <span class="text-xs">▾</span>
</button>
<div
class="mt-1 hidden flex-col gap-1 rounded-lg border border-slate-200 bg-white p-2 sm:absolute sm:left-0 sm:top-full sm:z-20 sm:mt-1 sm:min-w-48 sm:shadow-lg"
class="hidden flex-col gap-1 rounded-lg border border-slate-200 bg-white p-2 sm:absolute sm:left-0 sm:top-full sm:z-20 sm:min-w-48 sm:shadow-lg"
data-group-dropdown
>
<a href="/users" class="rounded px-3 py-1.5 text-slate-600 hover:bg-slate-100 hover:text-slate-900">Список</a>
@ -103,6 +103,8 @@
var dropdown = group.querySelector("[data-group-dropdown]");
if (!toggle || !dropdown) return;
var closeTimer = null;
function setOpen(open) {
dropdown.classList.toggle("hidden", !open);
toggle.setAttribute("aria-expanded", String(open));
@ -110,12 +112,19 @@
toggle.addEventListener("click", function (event) {
event.stopPropagation();
if (closeTimer) clearTimeout(closeTimer);
setOpen(dropdown.classList.contains("hidden"));
});
if (window.matchMedia("(min-width: 640px)").matches) {
group.addEventListener("mouseenter", function () { setOpen(true); });
group.addEventListener("mouseleave", function () { setOpen(false); });
group.addEventListener("mouseenter", function () {
if (closeTimer) clearTimeout(closeTimer);
setOpen(true);
});
group.addEventListener("mouseleave", function () {
if (closeTimer) clearTimeout(closeTimer);
closeTimer = setTimeout(function () { setOpen(false); }, 150);
});
}
});

View File

@ -7,4 +7,4 @@
from __future__ import annotations
__version__ = "0.6.4"
__version__ = "0.6.5"

View File

@ -7,4 +7,4 @@ from common import __version__
def test_version_is_set():
assert __version__
assert __version__ == "0.6.4"
assert __version__ == "0.6.5"