import EventEmitter from "eventemitter3"; export const InternalEvent = new EventEmitter(); export function internalSubscribe( ns: string, event: string, fn: (...args: any[]) => void, ) { 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 // - ReplyBar/add // - Modal/close // - PWA/update