aboutsummaryrefslogtreecommitdiff
path: root/static/js/alert.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js/alert.js')
-rw-r--r--static/js/alert.js28
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);