import { useVoiceStore } from '../stores/voice.ts'; interface VoiceChannelProps { channelId: string; channelName: string; } export function VoiceChannel({ channelId, channelName }: VoiceChannelProps) { const currentRoom = useVoiceStore((state) => state.currentRoom); const isConnected = useVoiceStore((state) => state.isConnected); const joinVoice = useVoiceStore((state) => state.joinVoice); const participants = useVoiceStore((state) => state.participants); const isActive = currentRoom === channelId; const handleClick = () => { if (!isActive) { console.log("[VoiceChannel] joining voice:", channelId, channelName); joinVoice(channelId, channelName).catch((err) => { console.error("[VoiceChannel] joinVoice failed:", err); }); } }; const error = useVoiceStore((state) => state.error); return (
{error && (
! {error}
)} {isActive && (
{participants.map((p) => (
{p.isMuted ? '○' : '●'} {p.username}
))}
)}
); }