Kraft102's picture
fix: resolve backend runtime error and frontend build failure
d075dbf
import { useEffect } from 'react';
type EventHandler = (data: any) => void;
class NeuralEventBus {
private listeners: Map<string, EventHandler[]> = new Map();
on(event: string, handler: EventHandler) {
if (!this.listeners.has(event)) {
this.listeners.set(event, []);
}
this.listeners.get(event)?.push(handler);
}
off(event: string, handler: EventHandler) {
const handlers = this.listeners.get(event);
if (handlers) {
this.listeners.set(event, handlers.filter(h => h !== handler));
}
}
emit(event: string, data: any) {
const handlers = this.listeners.get(event);
if (handlers) {
handlers.forEach(h => h(data));
}
}
}
export const neuralEventBus = new NeuralEventBus();
export const emitNeuralEvent = (event: string, data: any) => {
neuralEventBus.emit(event, data);
};
export const useNeuralEvent = (event: string, handler: EventHandler) => {
useEffect(() => {
neuralEventBus.on(event, handler);
return () => {
neuralEventBus.off(event, handler);
};
}, [event, handler]);
};