Files
Situation-Awareness-Platfor…/src/utils/eventBus.ts
2025-03-12 18:41:20 +08:00

36 lines
972 B
TypeScript

import mitt from 'mitt';
export type EventBus = {
logout?: boolean
login?: any
updateNaviBar: void
responseError:string
updateMrAction:string
updateIssueAction:string
notice: void
forbiddenRefresh: void
microRouterChange: void
openModal:void
updateNotice: number
updateUserInfo: Record<string, any>
reportView: void // 子应用中的路由主动上报
}
const emitter = mitt<EventBus>();
export const addEventListener = (evtName: keyof EventBus, callback: (payload: any) => void) => emitter.on(evtName, callback);
export const emitEvent = (evtName: keyof EventBus, payload?: any) => emitter.emit(evtName, payload);
export const offEvent = (evtName: keyof EventBus, handler?:any) => emitter.off(evtName, handler || undefined);
export const offEvents = (list: Array<keyof EventBus>) => {
list.forEach(offEvent);
};
export const getEvents = () => emitter.all;
export const clearEvent = () => emitter.all.clear();
export default emitter;