From ba48123fbcee51676be6841e4df6a88c5511b31e Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 13 Sep 2019 12:36:32 +1000 Subject: [PATCH] move buttons out of game.ctrl --- client/assets/styles/controls.less | 4 ++ client/src/components/game.ctrl.jsx | 25 ++++++- client/src/components/player.box.jsx | 99 +++++++++------------------- 3 files changed, 58 insertions(+), 70 deletions(-) diff --git a/client/assets/styles/controls.less b/client/assets/styles/controls.less index 6aac705b..678fb29f 100644 --- a/client/assets/styles/controls.less +++ b/client/assets/styles/controls.less @@ -14,6 +14,10 @@ aside { padding-left: 1em; + .game-controls { + grid-template-rows: 1fr 1fr 1fr min-content; + } + .controls { grid-area: controls; diff --git a/client/src/components/game.ctrl.jsx b/client/src/components/game.ctrl.jsx index a1a1675c..8da239bf 100644 --- a/client/src/components/game.ctrl.jsx +++ b/client/src/components/game.ctrl.jsx @@ -67,6 +67,8 @@ function Controls(args) { if (!game) return false; + const { abandonState } = this.state; + const opponent = game.players.find(t => t.id !== account.id); const player = game.players.find(t => t.id === account.id); @@ -104,13 +106,30 @@ function Controls(args) { const readyBtn = ; const quitBtn = ; + const cancelAbandon = e => { + e.stopPropagation(); + return this.setState({ abandonState: false }); + }; + + const abandonStateTrue = e => { + e.stopPropagation(); + this.setState({ abandonState: true }); + }; + + const abandonClasses = `abandon ${abandonState ? 'confirming' : ''}`; + const abandonAction = abandonState ? sendAbandon : abandonStateTrue; + return ( -