remove old event bus code

This commit is contained in:
Hayden 2023-08-02 11:26:38 -05:00
parent 79b6c66e06
commit 884e2c700e
No known key found for this signature in database
GPG key ID: 17CF79474E257545

View file

@ -1,38 +0,0 @@
export enum EventTypes {
// ClearStores event is used to inform the stores that _all_ the data they are using
// is now out of date and they should refresh - This is used when the user makes large
// changes to the data such as bulk actions or importing a CSV file
InvalidStores,
}
export type EventFn = () => void;
export interface IEventBus {
on(event: EventTypes, fn: EventFn, key: string): void;
off(event: EventTypes, key: string): void;
emit(event: EventTypes): void;
}
class EventBus implements IEventBus {
private listeners: Record<EventTypes, Record<string, EventFn>> = {
[EventTypes.InvalidStores]: {},
};
on(event: EventTypes, fn: EventFn, key: string): void {
this.listeners[event][key] = fn;
}
off(event: EventTypes, key: string): void {
delete this.listeners[event][key];
}
emit(event: EventTypes): void {
Object.values(this.listeners[event]).forEach(fn => fn());
}
}
const bus = new EventBus();
export function useEventBus(): IEventBus {
return bus;
}