Files
chad/new-client/src/shared/composables/use-event-bus.ts
2026-05-22 05:08:02 +06:00

45 lines
1.1 KiB
TypeScript

import type { ChatMessage } from '@shared/api/generated-chad-api.ts'
import type { EventType } from 'mitt'
import mitt from 'mitt'
export interface AppEvents extends Record<EventType, unknown> {
// 'socket:connected': void
// 'socket:disconnected': void
// 'socket:authenticated': { socketId: string }
//
// 'client:added': ChadClient
// 'client:removed': ChadClient
// 'client:updated': { socketId: string, oldClient: ChadClient, updatedClient: Partial<ChadClient> }
//
// 'consumer:added': Consumer
// 'consumer:removed': Consumer
// 'consumer:paused': Consumer
// 'consumer:resumed': Consumer
//
// 'producer:added': Producer
// 'producer:removed': Producer
// 'producer:paused': Producer
// 'producer:resumed': Producer
'audio:muted': void
'audio:unmuted': void
'output:muted': void
'output:unmuted': void
'video:enabled': void
'video:disabled': void
'share:enabled': void
'share:disabled': void
'chat:new-message': ChatMessage
}
const emitter = mitt<AppEvents>()
export function useEventBus() {
return {
emit: emitter.emit,
on: emitter.on,
off: emitter.off,
}
}