kollapsminoriteten/wp-content/themes/blocksy/static/js/events.js

36 lines
620 B
JavaScript
Raw Normal View History

2025-08-27 08:44:30 +02:00
class DomEvents {
_callbacksMap = {}
2025-12-12 13:14:39 +01:00
on(topic, callback, options = {}) {
2025-08-27 08:44:30 +02:00
const cb = (e) => {
callback(e.detail)
}
this._callbacksMap[callback] = cb
2025-12-12 13:14:39 +01:00
document.addEventListener(topic, cb, options)
2025-08-27 08:44:30 +02:00
}
once(topic, callback) {
const cb = (e) => {
callback(e.detail)
}
document.addEventListener(topic, cb, { once: true })
}
off(topic, callback) {
document.removeEventListener(topic, this._callbacksMap[callback])
}
trigger(topic, data) {
document.dispatchEvent(new CustomEvent(topic, { detail: data }))
}
}
const events = new DomEvents()
window.ctEvents = events
export default events