Files
popa-launcher/src/renderer/realtime/voice/voiceStore.ts
2026-01-02 19:22:11 +05:00

33 lines
591 B
TypeScript

type VoiceState = {
connected: boolean;
shouldBeConnected: boolean;
participants: string[];
muted: boolean;
};
const state: VoiceState = {
connected: false,
shouldBeConnected: false,
participants: [],
muted: false,
};
const listeners = new Set<() => void>();
export function getVoiceState() {
return state;
}
export function setVoiceState(patch: Partial<VoiceState>) {
Object.assign(state, patch);
listeners.forEach((l) => l());
}
export function subscribeVoice(cb: () => void): () => void {
listeners.add(cb);
return () => {
listeners.delete(cb);
};
}