confirm abandon
This commit is contained in:
parent
c45cf59f29
commit
e8e63e0943
@ -1,3 +1,5 @@
|
|||||||
|
@import 'colours.less';
|
||||||
|
|
||||||
aside {
|
aside {
|
||||||
grid-area: ctrl;
|
grid-area: ctrl;
|
||||||
display: grid;
|
display: grid;
|
||||||
@ -93,3 +95,16 @@ aside {
|
|||||||
.team-page-ctrl h2 {
|
.team-page-ctrl h2 {
|
||||||
padding: 0 0.75em 0 0.75em;
|
padding: 0 0.75em 0 0.75em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.abandon {
|
||||||
|
&:hover {
|
||||||
|
color: @red;
|
||||||
|
border-color: @red;
|
||||||
|
};
|
||||||
|
|
||||||
|
&:active, &.confirming {
|
||||||
|
background: @red;
|
||||||
|
color: black;
|
||||||
|
border: 1px solid black;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,4 +1,5 @@
|
|||||||
const preact = require('preact');
|
const preact = require('preact');
|
||||||
|
const { Component } = require('preact')
|
||||||
const { connect } = require('preact-redux');
|
const { connect } = require('preact-redux');
|
||||||
|
|
||||||
const addState = connect(
|
const addState = connect(
|
||||||
@ -8,7 +9,16 @@ const addState = connect(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
function Scoreboard(args) {
|
|
||||||
|
class Scoreboard extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
abandonState: false,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
render(args, state) {
|
||||||
const {
|
const {
|
||||||
abandon,
|
abandon,
|
||||||
animating,
|
animating,
|
||||||
@ -18,6 +28,8 @@ function Scoreboard(args) {
|
|||||||
clear,
|
clear,
|
||||||
} = args;
|
} = args;
|
||||||
|
|
||||||
|
const { abandonState } = state;
|
||||||
|
|
||||||
const scoreText = () => {
|
const scoreText = () => {
|
||||||
if (player.score === 'Zero') return '▫▫▫▫';
|
if (player.score === 'Zero') return '▫▫▫▫';
|
||||||
if (player.score === 'One') return '■▫▫▫';
|
if (player.score === 'One') return '■▫▫▫';
|
||||||
@ -28,6 +40,15 @@ function Scoreboard(args) {
|
|||||||
return '';
|
return '';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const divClick = e => {
|
||||||
|
e.stopPropagation();
|
||||||
|
return this.setState({ abandonState: false });
|
||||||
|
};
|
||||||
|
const abandonStateTrue = e => {
|
||||||
|
e.stopPropagation();
|
||||||
|
this.setState({ abandonState: true });
|
||||||
|
};
|
||||||
|
|
||||||
if (!isPlayer) {
|
if (!isPlayer) {
|
||||||
return (
|
return (
|
||||||
<div class={`player-box top ${player.ready ? 'ready' : ''}`}>
|
<div class={`player-box top ${player.ready ? 'ready' : ''}`}>
|
||||||
@ -39,9 +60,10 @@ function Scoreboard(args) {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
const abandonClasses = `abandon ${abandonState ? 'confirming' : ''}`;
|
||||||
|
const abandonAction = abandonState ? abandon : abandonStateTrue;
|
||||||
return (
|
return (
|
||||||
<div class={`player-box bottom ${player.ready ? 'ready' : ''}`}>
|
<div onClick={divClick} class={`player-box bottom ${player.ready ? 'ready' : ''}`}>
|
||||||
<div class="score">{scoreText()}</div>
|
<div class="score">{scoreText()}</div>
|
||||||
<div class="img">
|
<div class="img">
|
||||||
<div>{player.name}</div>
|
<div>{player.name}</div>
|
||||||
@ -50,10 +72,11 @@ function Scoreboard(args) {
|
|||||||
{(isPlayer && isGame) ? <button disabled={animating} onClick={clear}>Clear</button> : null}
|
{(isPlayer && isGame) ? <button disabled={animating} onClick={clear}>Clear</button> : null}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
{(abandon) ? <button disabled={animating} onClick={abandon}>Abandon</button> : null}
|
{(abandon) ? <button class={abandonClasses} disabled={animating} onClick={abandonAction}>Abandon</button> : null}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = addState(Scoreboard);
|
module.exports = addState(Scoreboard);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user