Открытая группа меню закрывает соседнюю
При наведении или клике на «Сообщения»/«Пользователи» остальные группы теперь закрываются сразу, поэтому два списка не висят одновременно. Клик вне меню по-прежнему закрывает всё.
This commit is contained in:
parent
92d2d1efcc
commit
eb1c3c9d4d
|
|
@ -171,7 +171,7 @@ make backup E=test # на домашнем сервере: ./scripts/clickho
|
|||
|
||||
## Версионирование
|
||||
|
||||
- Единый источник версии — `common/version.py` (`__version__`), текущая — `0.6.6`.
|
||||
- Единый источник версии — `common/version.py` (`__version__`), текущая — `0.6.7`.
|
||||
- Схема — SemVer-подобная (`MAJOR.MINOR.PATCH`); git-тег = `v` + версия (`v0.1`).
|
||||
- Docker-образы тегируются версией (Блок 2), события ClickHouse получают `bot_version` (Блок 3).
|
||||
- Выпуск: изменить `common/version.py` → коммит → аннотированный тег `vX.Y` → `git push --tags`.
|
||||
|
|
|
|||
|
|
@ -98,6 +98,23 @@
|
|||
}
|
||||
|
||||
var groups = document.querySelectorAll("[data-group]");
|
||||
|
||||
function hideGroup(group) {
|
||||
var dropdown = group.querySelector("[data-group-dropdown]");
|
||||
var toggle = group.querySelector("[data-group-toggle]");
|
||||
if (dropdown) {
|
||||
dropdown.classList.add("hidden");
|
||||
dropdown.classList.remove("flex");
|
||||
}
|
||||
if (toggle) toggle.setAttribute("aria-expanded", "false");
|
||||
}
|
||||
|
||||
function hideOthers(current) {
|
||||
groups.forEach(function (group) {
|
||||
if (group !== current) hideGroup(group);
|
||||
});
|
||||
}
|
||||
|
||||
groups.forEach(function (group) {
|
||||
var toggle = group.querySelector("[data-group-toggle]");
|
||||
var dropdown = group.querySelector("[data-group-dropdown]");
|
||||
|
|
@ -114,12 +131,15 @@
|
|||
toggle.addEventListener("click", function (event) {
|
||||
event.stopPropagation();
|
||||
if (closeTimer) clearTimeout(closeTimer);
|
||||
setOpen(dropdown.classList.contains("hidden"));
|
||||
var willOpen = dropdown.classList.contains("hidden");
|
||||
if (willOpen) hideOthers(group);
|
||||
setOpen(willOpen);
|
||||
});
|
||||
|
||||
if (window.matchMedia("(min-width: 640px)").matches) {
|
||||
group.addEventListener("mouseenter", function () {
|
||||
if (closeTimer) clearTimeout(closeTimer);
|
||||
hideOthers(group);
|
||||
setOpen(true);
|
||||
});
|
||||
group.addEventListener("mouseleave", function () {
|
||||
|
|
@ -130,13 +150,7 @@
|
|||
});
|
||||
|
||||
document.addEventListener("click", function () {
|
||||
groups.forEach(function (group) {
|
||||
var dropdown = group.querySelector("[data-group-dropdown]");
|
||||
if (dropdown) {
|
||||
dropdown.classList.add("hidden");
|
||||
dropdown.classList.remove("flex");
|
||||
}
|
||||
});
|
||||
groups.forEach(hideGroup);
|
||||
});
|
||||
|
||||
var tags = {
|
||||
|
|
|
|||
|
|
@ -7,4 +7,4 @@
|
|||
|
||||
from __future__ import annotations
|
||||
|
||||
__version__ = "0.6.6"
|
||||
__version__ = "0.6.7"
|
||||
|
|
|
|||
|
|
@ -7,4 +7,4 @@ from common import __version__
|
|||
|
||||
def test_version_is_set():
|
||||
assert __version__
|
||||
assert __version__ == "0.6.6"
|
||||
assert __version__ == "0.6.7"
|
||||
|
|
|
|||
Loading…
Reference in New Issue