forked from abner/for-legacy-web
Add global event pipeline.
Add message editor back.
This commit is contained in:
@@ -17,6 +17,7 @@ import { useChannel, useChannelPermission, useForceUpdate, useServer, useServerP
|
||||
import { Children } from "../types/Preact";
|
||||
import LineDivider from "../components/ui/LineDivider";
|
||||
import { connectState } from "../redux/connector";
|
||||
import { internalEmit } from "./eventEmitter";
|
||||
|
||||
interface ContextMenuData {
|
||||
user?: string;
|
||||
@@ -162,7 +163,7 @@ function ContextMenus(props: WithDispatcher) {
|
||||
|
||||
case "edit_message":
|
||||
{
|
||||
// InternalEventEmitter.emit("edit_message", data.id);
|
||||
internalEmit("MessageRenderer", "edit_message", data.id);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
18
src/lib/eventEmitter.ts
Normal file
18
src/lib/eventEmitter.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
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
|
||||
// - MessageRenderer/edit_last
|
||||
// - MessageRenderer/edit_message
|
||||
// - MessageBox/focus
|
||||
Reference in New Issue
Block a user