diff options
Diffstat (limited to 'static/js/alert.js')
| -rw-r--r-- | static/js/alert.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/static/js/alert.js b/static/js/alert.js new file mode 100644 index 0000000..4f9fc21 --- /dev/null +++ b/static/js/alert.js @@ -0,0 +1,28 @@ +function initAlerts() { + document.querySelectorAll("[data-alert]").forEach(function (alert) { + if (alert.dataset.alertInitialized) return; + alert.dataset.alertInitialized = "true"; + + var dismissButton = alert.querySelector("[data-alert-dismiss]"); + var autoTimeout = setTimeout(function () { + dismissAlert(alert); + }, 5000); + + if (dismissButton) { + dismissButton.addEventListener("click", function () { + clearTimeout(autoTimeout); + dismissAlert(alert); + }); + } + }); +} + +function dismissAlert(alert) { + alert.classList.add("dismissing"); + alert.addEventListener("animationend", function () { + alert.remove(); + }); +} + +document.addEventListener("DOMContentLoaded", initAlerts); +document.body.addEventListener("htmx:afterSwap", initAlerts); |
