import React, { Fragment, useEffect, useState } from "react"; import YoutubePlayer from "./YoutubePlayer"; import PlayerToolbar from "./PlayerToolbar"; import { makeMessage } from "../util/Resolver"; import { MessageTypes } from "../util/enums"; import { Chueue } from "../util/room"; export default function Player({ room, setRoom, socket }) { const { playback, controller, chueue } = room; const { isMe } = controller; const { repeatEnabled } = chueue; const [playerEnabled, setPlayerEnabled] = useState(false); const [previousPlayerEnabled, setPreviousPlayerEnabled] = useState(playerEnabled); const [placeholderHidden, setPlaceholderHidden] = useState(false); useEffect(() => { setPreviousPlayerEnabled(playerEnabled); }, [playerEnabled]); useEffect(() => { console.log(socket); if (socket.ws.readyState === WebSocket.OPEN && playerEnabled !== previousPlayerEnabled) { socket.ws.send(makeMessage(MessageTypes.PLAYER_ENABLED, { enabled: playerEnabled })) } }, [playerEnabled, previousPlayerEnabled, socket]) function onSongEnd() { console.debug("Song end triggered with state", room) if (isMe && playback.song !== null) { socket.ws.send(makeMessage(MessageTypes.SONG_END, { id: playback.song.id })) const { song: newSong, chueue: newChueue } = Chueue.pop(chueue) setRoom({ ...room, chueue: { ...chueue, ...newChueue }, playback: { ...playback, song: newSong }, }) } } let player; if (playerEnabled) { player = } else if (placeholderHidden) { player = } else { player =

} return
{player}
}