<template lang="pug">
main
input#modalChat.modal(type="checkbox" @click="resetChatColor()")
- div#chatWrap(role="dialog" data-checkbox="modalChat" aria-labelledby="inputChat")
+ div#chatWrap(role="dialog" data-checkbox="modalChat")
#chat.card
label.modal-close(for="modalChat")
#participants
},
game: { //passed to BaseGame
players:[{name:""},{name:""}],
+ chats: [],
rendered: false,
},
virtualClocks: [0, 0], //initialized with true game.clocks
if (!!this.conn && this.conn.readyState == 1) //1 == OPEN state
callback();
else //socket not ready yet (initial loading)
- this.conn.onopen = callback;
+ {
+ // NOTE: it's important to call callback without arguments,
+ // otherwise first arg is Websocket object and loadGame fails.
+ this.conn.onopen = () => { return callback() };
+ }
};
if (!this.gameRef.rid) //game stored locally or on server
this.loadGame(null, () => socketInit(this.roomInit));
this.vr = new V(game.fen);
const gtype = (game.cadence.indexOf('d') >= 0 ? "corr" : "live");
const tc = extractTime(game.cadence);
+ if (!game.chats)
+ game.chats = []; //live games don't have chat history
if (gtype == "corr")
{
if (game.players[0].color == "b")
});
if (this.repeat[repIdx] >= 3)
this.drawOffer = "threerep";
- callback();
+ if (!!callback)
+ callback();
};
if (!!game)
return afterRetrieval(game);
#chat
padding-top: 20px
- max-width: 600px
+ max-width: 767px
border: none;
#chatBtn