UNPKG

@etsoo/materialui

Version:

TypeScript Material-UI Implementation

79 lines (70 loc) 1.91 kB
import { SignalRUser } from "./SignalRUser"; import { OperationMessageDto } from "./OperationMessageDto"; import { OperationMessageHandler } from "./OperationMessageHandler"; import EventEmitter from "eventemitter3"; /** * Message utilities * 消息工具 */ export namespace MessageUtils { /** * Event emitter */ export const eventEmitter = new EventEmitter(); const OperationMessageName = "onOperationMessage"; const RefreshName = "onRefresh"; /** * Emit operation message * 发出操作信息 * @param seed Refresh seed */ export function emitOperationMessage( user: SignalRUser | undefined, isSelf: boolean, message: OperationMessageDto ) { eventEmitter.emit(OperationMessageName, user, isSelf, message); } /** * Emit refresh * 发出刷新 * @param user SignalR user * @param isSelf Is current user self * @param message Message */ export function emitRefresh() { eventEmitter.emit(RefreshName); } /** * Add operation event listener * 添加操作事件监控器 * @param handler Handler */ export function onOperationMessage(handler: OperationMessageHandler) { eventEmitter.on(OperationMessageName, handler); } /** * Add refresh event listener * 添加事件事件监控器 * @param handler Handler */ export function onRefresh(handler: OperationMessageHandler) { eventEmitter.on(RefreshName, handler); } /** * Remove operation event listener * 移除操作事件监控器 * @param handler Handler */ export function offOperationMessage(handler: OperationMessageHandler) { eventEmitter.off(OperationMessageName, handler); } /** * Remove refresh event listener * 移除刷新事件监控器 * @param handler Handler */ export function offRefresh(handler: OperationMessageHandler) { eventEmitter.off(RefreshName, handler); } }