/
slsh
/
agent_register
Обзор
Документация
Войти
/
slsh
/
agent_register
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/static/settings.js
59 строк
2 KB
Igor Tveritin
initial
14 июл 2026, 11:23
14 июл 2026, 11:23
69e8254
Код
Авторство
О чём код?
const settingsModal = document.querySelector("[data-settings-modal]"); const settingsOpenButton = document.querySelector("[data-settings-open]"); const settingsCloseButtons = document.querySelectorAll("[data-settings-close]"); const settingsDialog = document.querySelector(".settings-dialog"); const settingsAnimationMs = 180; let settingsCloseTimer = 0; let settingsReturnFocus = null; if (settingsModal && settingsOpenButton && settingsDialog) { settingsModal.setAttribute("aria-hidden", "true"); settingsOpenButton.addEventListener("click", openSettingsModal); settingsCloseButtons.forEach((button) => button.addEventListener("click", closeSettingsModal)); settingsModal.addEventListener("click", (event) => { if (event.target === settingsModal) { closeSettingsModal(); } }); document.addEventListener("keydown", (event) => { if (event.key === "Escape" && !settingsModal.hidden) { closeSettingsModal(); } }); } function openSettingsModal() { if (settingsCloseTimer) { window.clearTimeout(settingsCloseTimer); settingsCloseTimer = 0; } settingsReturnFocus = document.activeElement instanceof HTMLElement ? document.activeElement : settingsOpenButton; settingsModal.hidden = false; settingsModal.classList.remove("is-open"); settingsModal.setAttribute("aria-hidden", "false"); document.body.classList.add("modal-open"); settingsModal.offsetWidth; window.requestAnimationFrame(() => { settingsModal.classList.add("is-open"); settingsDialog.focus({ preventScroll: true }); }); } function closeSettingsModal() { settingsModal.classList.remove("is-open"); settingsModal.setAttribute("aria-hidden", "true"); settingsCloseTimer = window.setTimeout(() => { settingsModal.hidden = true; document.body.classList.remove("modal-open"); settingsReturnFocus?.focus({ preventScroll: true }); settingsReturnFocus = null; settingsCloseTimer = 0; }, settingsAnimationMs); }