import useActionCable from './hooks/useActionCable';
import useChannel from './hooks/useChannel';

const {actionCable} = useActionCable(`${baseURI.webSocket}/cable`);
const {subscribe, unsubscribe} = useChannel<string>(actionCable);

useEffect(() => {
  subscribe(
    {channel: 'GameChannel', id: gameId},
    {
      received: gameJson => {
        const parsedGame = JSON.parse(gameJson);
        setGame(parsedGame);
      },
    },
  );

  return () => {
    unsubscribe();
  };
}, [subscribe, unsubscribe, gameId]);