diff --git a/frontend/src/hooks/useRoomName.ts b/frontend/src/hooks/useRoomName.ts index 14e3c1f..1cf2422 100644 --- a/frontend/src/hooks/useRoomName.ts +++ b/frontend/src/hooks/useRoomName.ts @@ -1,5 +1,5 @@ import { atom, useAtom } from 'jotai' -import { useCallback } from 'react' +import { useCallback, useState } from 'react' const roomNameAtom = atom(getRoomNameFromUrl()) diff --git a/frontend/src/hooks/useWebSocketConnection.ts b/frontend/src/hooks/useWebSocketConnection.ts index 5450cd6..77aa0b1 100644 --- a/frontend/src/hooks/useWebSocketConnection.ts +++ b/frontend/src/hooks/useWebSocketConnection.ts @@ -1,19 +1,19 @@ -import { atom, useAtom } from 'jotai' -import { useCallback, useEffect } from 'react' +import { useCallback, useState } from 'react' import { WEBSOCKET_URL } from '../background/constants' import { UserInfo } from '../components/jitsi/types' +const createWebSocketConnection = (userInfo: UserInfo) => { + const webSocket = new WebSocket(WEBSOCKET_URL) + console.log('[Rooms] createWebSocketConnection') + webSocket.addEventListener('open', (_: Event) => webSocket.send(JSON.stringify(userInfo))) -const webSocket = new WebSocket(WEBSOCKET_URL) -const webSocketConnectionAtom = atom(webSocket) + return webSocket +} function useWebSocketConnection(userInfo: UserInfo) { console.log('[Rooms] useWebSocketConnection') - const [webSocketConnection] = useAtom(webSocketConnectionAtom) - useEffect(() => { - sendMessageNowOrLater(webSocketConnection, JSON.stringify(userInfo)) - }, [webSocketConnection, userInfo]); + const [webSocketConnection] = useState(() => createWebSocketConnection(userInfo)) const sendMessage = useCallback( (message: string) => { @@ -41,11 +41,4 @@ function useWebSocketConnection(userInfo: UserInfo) { return { onMessage, sendMessage, disconnect } } -const sendMessageNowOrLater = (webSocket: WebSocket, message: string) => { - if (webSocket.readyState !== WebSocket.OPEN) { - return webSocket.addEventListener('open', (_: Event) => webSocket.send(message)) - } - webSocket.send(message) -} - export default useWebSocketConnection