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