import {makeApiUrl, PlayerInfoMessage, useMyWebSocket} from './serverCalls'; import Column from './components/Column.tsx'; import {ReadyState} from 'react-use-websocket'; import {useEffect, useState} from 'react'; function ScoreRow({name, value}: { name: string; value?: string | any; }) { let valueStr; if (value === undefined) valueStr = '?'; else if (typeof value === 'string' || value instanceof String) valueStr = value; else valueStr = JSON.stringify(value); return {name} {valueStr} ; } export default function PlayerInfo({player}: { player: string }) { const [shouldSendMessage, setShouldSendMessage] = useState(false); const url = makeApiUrl('/player'); url.searchParams.set('name', player); const { lastJsonMessage, readyState, sendMessage } = useMyWebSocket(url.toString(), { onMessage: () => setShouldSendMessage(true), onOpen: _ => setShouldSendMessage(true) }); useEffect(() => { if (!shouldSendMessage || readyState !== ReadyState.OPEN) return; setShouldSendMessage(false); sendMessage(''); }, [readyState, shouldSendMessage]); if (!lastJsonMessage || readyState !== ReadyState.OPEN) return <>; let position = ''; if (lastJsonMessage.tank) position = `(${Math.round(lastJsonMessage.tank.position.x)}|${Math.round(lastJsonMessage.tank.position.y)})`; return

Playing as {lastJsonMessage.player.name}

; }