const Team = { X: 0, O: 1, properties: { 0: {name: "X"}, 1: {name: "O"} } }; function undisplay(element) { element.style.display="none"; } function add_message(severity, message) { message = `
`; const message_area = document.getElementById('message-area'); message_area.insertAdjacentHTML('beforeend', message); } const events = new EventSource("events"); events.onerror = function(event) { if (event.target.readyState === EventSource.CLOSED) { add_message("danger", "Connection to server lost."); } }; events.addEventListener("move", event => { const move = JSON.parse(event.data); window.game.receive_move(move); }); events.addEventListener("game-state", event => { const state = JSON.parse(event.data); window.game.reset_board(); for (let square of state.moves) { window.game.receive_move(square); } }); function Square(props) { let className = "square"; if (props.value) { className += " occupied"; } else if (props.active) { className += " open"; } const onClick = props.active ? props.onClick : null; return ( ${message}