@react95/core
Version:
Windows 95 styleguide
38 lines (37 loc) • 995 B
JavaScript
class Emitter {
constructor() {
this.listeners = {};
}
on(eventName, callback) {
if (!this.listeners[eventName]) {
this.listeners[eventName] = [];
}
this.listeners[eventName].push(callback);
}
off(eventName, callback) {
if (this.listeners[eventName]) {
this.listeners[eventName] = this.listeners[eventName].filter(
(cb) => cb !== callback
);
}
}
emit(eventName, data) {
if (this.listeners[eventName]) {
this.listeners[eventName].forEach((callback) => callback(data));
}
}
}
var ModalEvents = /* @__PURE__ */ ((ModalEvents2) => {
ModalEvents2["AddModal"] = "add-modal";
ModalEvents2["RemoveModal"] = "remove-modal";
ModalEvents2["ModalVisibilityChanged"] = "modal-visibility-changed";
ModalEvents2["MinimizeModal"] = "minimize-modal";
ModalEvents2["RestoreModal"] = "restore-modal";
return ModalEvents2;
})(ModalEvents || {});
const modals = new Emitter();
export {
Emitter,
ModalEvents,
modals
};