/* SkuaToast — auto-dismiss timer for a flash toast.
Reads data-autodismiss (ms; 0 disables) and clicks the toast (which runs the
server flash-clear + hide JS) after the timeout. Hovering pauses the timer so
a message is never yanked away mid-read.
*/
export default {
mounted() {
this.ms = parseInt(this.el.dataset.autodismiss || "0", 10);
this.arm();
this.onEnter = () => clearTimeout(this.timer);
this.onLeave = () => this.arm();
this.el.addEventListener("mouseenter", this.onEnter);
this.el.addEventListener("mouseleave", this.onLeave);
},
updated() {
this.arm();
},
destroyed() {
clearTimeout(this.timer);
this.el.removeEventListener("mouseenter", this.onEnter);
this.el.removeEventListener("mouseleave", this.onLeave);
},
arm() {
clearTimeout(this.timer);
if (this.ms > 0) this.timer = setTimeout(() => this.el.click(), this.ms);
},
};