revite/src/lib/eventEmitter.ts

31 lines
755 B
TypeScript
Raw Normal View History

import EventEmitter from "eventemitter3";
2021-07-05 06:23:23 -04:00
export const InternalEvent = new EventEmitter();
2021-07-05 06:23:23 -04:00
export function internalSubscribe(
2021-07-05 06:25:20 -04:00
ns: string,
event: string,
fn: (...args: any[]) => void,
2021-07-05 06:23:23 -04:00
) {
InternalEvent.addListener(`${ns}/${event}`, fn);
return () => InternalEvent.removeListener(`${ns}/${event}`, fn);
}
export function internalEmit(ns: string, event: string, ...args: any[]) {
InternalEvent.emit(`${ns}/${event}`, ...args);
}
// Event structure: namespace/event
/// Event List
// - MessageArea/jump_to_bottom
// - MessageRenderer/edit_last
// - MessageRenderer/edit_message
// - Intermediate/open_profile
// - Intermediate/navigate
// - MessageBox/append
// - TextArea/focus
2021-06-23 13:26:41 -04:00
// - ReplyBar/add
2021-07-07 17:02:18 -04:00
// - Modal/close
2021-06-28 05:17:38 -04:00
// - PWA/update