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 square = JSON.parse(event.data); window.game.receiveMove(square); }); events.addEventListener("game-state", event => { const state = JSON.parse(event.data); window.game.resetState(); for (let square of state.moves) { window.game.receiveMove(square); } }); function Square(props) { return ( ); } class Board extends React.Component { renderSquare(i) { return ( ${message}