@etsoo/materialui
Version:
TypeScript Material-UI Implementation
79 lines (70 loc) • 1.91 kB
text/typescript
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);
}
}