import React, { useEffect, useState } from "react"; import { useWebSocket } from "../WebSocketContext.jsx"; import { WebSocketStatus } from "../common/WebSocketStatus.jsx"; import { ParticipantList } from "../common/ParticipantList.jsx"; import { DraftMessage, DraftPhase, DraftPhaseLabel, DraftPhasesOrdered } from '../constants.js'; import { fetchDraftDetails, isEmptyObject, handleDraftStatusMessages, handleUserIdentifyMessages } from "../common/utils.js" import { DraftMoviePool } from "../common/DraftMoviePool.jsx" import { DraftCountdownClock } from "../common/DraftCountdownClock.jsx" import { jsxs } from "react/jsx-runtime"; const DraftPhaseDisplay = ({ draftPhase, nextPhaseHandler, prevPhaseHandler }) => { return (
    { DraftPhasesOrdered.map((p) => (
  1. {DraftPhaseLabel[p]}
  2. )) }
) } export const DraftAdmin = ({ draftSessionId }) => { const socket = useWebSocket(); const [draftDetails, setDraftDetails] = useState(); const [draftState, setDraftState] = useState({}) const [currentUser, setCurrentUser] = useState(null); useEffect(() => { fetchDraftDetails(draftSessionId) .then((data) => { console.log("Fetched draft data", data) setDraftDetails(data) }) }, []) useEffect(()=>{ if (!socket) return; const openHandler = (event)=>{ console.log('Websocket Opened') } const closeHandler = (event)=>{ console.log('Websocket Closed') } socket.addEventListener('open', openHandler ); socket.addEventListener('close', closeHandler ); return ()=>{ socket.removeEventListener('open', openHandler ); socket.removeEventListener('close', closeHandler ); } }, [socket]) useEffect(() => { if (!socket) return; const draftStatusMessageHandler = (event) => handleDraftStatusMessages(event, setDraftState) const userIdentifyMessageHandler = (event) => handleUserIdentifyMessages(event, setCurrentUser) const handleNominationRequest = (event)=> { const message = JSON.parse(event.data) const { type, payload } = message; if (type == DraftMessage.NOMINATION_SUBMIT_REQUEST) { socket.send(JSON.stringify( { type: DraftMessage.NOMINATION_SUBMIT_REQUEST, payload } )) } } socket.addEventListener('message', draftStatusMessageHandler ); socket.addEventListener('message', userIdentifyMessageHandler ); socket.addEventListener('message', handleNominationRequest ); return () => { socket.removeEventListener('message', draftStatusMessageHandler) socket.removeEventListener('message', userIdentifyMessageHandler ); socket.removeEventListener('message', handleNominationRequest ); }; }, [socket]); const handlePhaseChange = (target) => { let destination const origin = draftState.phase const originPhaseIndex = DraftPhasesOrdered.findIndex(i => i == origin) console.log('origin phase index', originPhaseIndex) if (target == "next" && originPhaseIndex < DraftPhasesOrdered.length) { destination = DraftPhasesOrdered[originPhaseIndex + 1] } else if (target == "previous" && originPhaseIndex > 0) { destination = DraftPhasesOrdered[originPhaseIndex - 1] } console.log(destination) socket.send( JSON.stringify( { type: DraftMessage.PHASE_CHANGE_REQUEST, origin, destination } ) ) } const handleStartDraft = () => { } const handleAdvanceDraft = () => { socket.send( JSON.stringify( { type: DraftMessage.DRAFT_INDEX_ADVANCE_REQUEST } ) ) } const handleRequestDraftSummary = () => { socket.send( JSON.stringify( { type: DraftMessage.STATUS_SYNC_REQUEST } ) ) } const handleStartBidding = () => { socket.send( JSON.stringify( {type: DraftMessage.BID_START_REQUEST} ) ) } return (

Draft Panel

{ handlePhaseChange('next') }} prevPhaseHandler={() => { handlePhaseChange('previous') }}>
); };