Refactor button box code a bit, and fix color of copy game link icon

This commit is contained in:
sepia 2025-07-23 15:03:19 -05:00
parent e8bfdaaa30
commit 74bb200f8f
5 changed files with 64 additions and 59 deletions

View file

@ -139,90 +139,94 @@ class GameServer {
}
public broadcastButtonsToPlayer(conn: PlayerConnection) {
let buttonsHtml;
const buttons: JSX.Element[] = [];
if (this.gomoku.status == 'playing' && this.getPlayerColor(conn)) {
if (this.takebackRequesterId) {
if (this.takebackRequesterId === conn.id) {
buttonsHtml = (
buttons.push(
<button id="cancel-takeback-request-button" ws-send="click">
Cancel Takeback Request
</button>
</button>,
);
} else {
buttonsHtml = (
<div>
<button id="accept-takeback-button" ws-send="click">
Accept Takeback
</button>
<button id="decline-takeback-button" ws-send="click">
Decline Takeback
</button>
</div>
buttons.push(
<button id="accept-takeback-button" ws-send="click">
Accept Takeback
</button>,
);
buttons.push(
<button id="decline-takeback-button" ws-send="click">
Decline Takeback
</button>,
);
}
} else if (this.drawRequesterId) {
if (this.drawRequesterId === conn.id) {
buttonsHtml = (
buttons.push(
<button id="cancel-draw-request-button" ws-send="click">
Cancel Draw Request
</button>
</button>,
);
} else {
buttonsHtml = (
<div>
<button id="accept-draw-button" ws-send="click">
Accept Draw
</button>
<button id="decline-draw-button" ws-send="click">
Decline Draw
</button>
</div>
buttons.push(
<button id="accept-draw-button" ws-send="click">
Accept Draw
</button>,
);
buttons.push(
<button id="decline-draw-button" ws-send="click">
Decline Draw
</button>,
);
}
} else {
buttonsHtml = (
<div>
<button id="resign-button" ws-send="click">
Resign
</button>
<button id="takeback-button" ws-send="click">
Takeback
</button>
<button id="draw-button" ws-send="click">
Draw
</button>
</div>
buttons.push(
<button id="resign-button" ws-send="click">
Resign
</button>,
);
buttons.push(
<button id="takeback-button" ws-send="click">
Takeback
</button>,
);
buttons.push(
<button id="draw-button" ws-send="click">
Draw
</button>,
);
}
} else if (this.gomoku.status === 'finished') {
if (this.rematchRequesterId) {
if (this.rematchRequesterId === conn.id) {
buttonsHtml = (
buttons.push(
<button id="cancel-rematch-request-button" ws-send="click">
Cancel Rematch Request
</button>
</button>,
);
} else {
buttonsHtml = (
<div>
<button id="accept-rematch-button" ws-send="click">
Accept Rematch
</button>
<button id="decline-rematch-button" ws-send="click">
Decline Rematch
</button>
</div>
buttons.push(
<button id="accept-rematch-button" ws-send="click">
Accept Rematch
</button>,
);
buttons.push(
<button id="decline-rematch-button" ws-send="click">
Decline Rematch
</button>,
);
}
} else {
buttonsHtml = (
buttons.push(
<button id="rematch-button" ws-send="click">
Rematch
</button>
</button>,
);
}
}
conn.ws.send(<div id="button-box">{buttonsHtml}</div>);
conn.ws.send(<div id="button-box">{buttons}</div>);
console.log(`Sent buttons for game ${this.id} to player ${conn.id}`);
}