diff --git a/packages/web/src/components/layout/ChannelSidebar.tsx b/packages/web/src/components/layout/ChannelSidebar.tsx index 92065502..20d6f41a 100644 --- a/packages/web/src/components/layout/ChannelSidebar.tsx +++ b/packages/web/src/components/layout/ChannelSidebar.tsx @@ -15,6 +15,7 @@ import { getActiveRoom } from '../../hooks/useLiveKit'; import { AudioManager } from '../../audio/AudioManager'; import { hasPermissionBit, PermissionBits } from '../../utils/permissions'; import { parseFederatedUsername, isSelf } from '../../utils/identity'; +import { joinVoiceChannel } from '../../utils/voice'; export function ChannelSidebar() { const servers = useServerStore((s) => s.servers); @@ -29,7 +30,6 @@ export function ChannelSidebar() { const members = useServerStore((s) => s.members); const currentVoiceChannelId = useVoiceStore((s) => s.currentVoiceChannelId); const activeDmCall = useVoiceStore((s) => s.activeDmCall); - const setCurrentVoiceChannel = useVoiceStore((s) => s.setCurrentVoiceChannel); const isMuted = useVoiceStore((s) => s.isMuted); const isDeafened = useVoiceStore((s) => s.isDeafened); const toggleMic = useVoiceStore((s) => s.toggleMic); @@ -104,8 +104,7 @@ export function ChannelSidebar() { navigate(`/channels/${currentServerId}/${channelId}`); return; } - setCurrentVoiceChannel(channelId); - wsSend({ type: 'voice_join', channelId }, getChannelOrigin(channelId)); + joinVoiceChannel(channelId); navigate(`/channels/${currentServerId}/${channelId}`); }; diff --git a/packages/web/src/components/layout/MainContent.tsx b/packages/web/src/components/layout/MainContent.tsx index c2df75f4..dd212a87 100644 --- a/packages/web/src/components/layout/MainContent.tsx +++ b/packages/web/src/components/layout/MainContent.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useRef, useState, useCallback } from 'react'; -import { useServerStore, getChannelOrigin } from '../../stores/serverStore'; +import { useServerStore } from '../../stores/serverStore'; import { useChatStore } from '../../stores/chatStore'; import { useUIStore } from '../../stores/uiStore'; import { useAuthStore } from '../../stores/authStore'; @@ -15,6 +15,7 @@ import { useVoiceStore } from '../../stores/voiceStore'; import { wsSend } from '../../hooks/useWebSocket'; import { MemberListToggleButton } from './MemberListToggleButton'; import { isSelf } from '../../utils/identity'; +import { joinVoiceChannel } from '../../utils/voice'; export function MainContent() { // 1. ALL HOOKS AT THE TOP @@ -258,10 +259,7 @@ export function MainContent() {

No one is currently in this voice channel.