aboutsummaryrefslogtreecommitdiff
path: root/diplomacy/web/src/gui/wizards/gameCreation/panelChoosePower.js
diff options
context:
space:
mode:
authornotoraptor <stevenbocco@gmail.com>2019-07-25 10:59:36 -0400
committerPhilip Paquette <pcpaquette@gmail.com>2019-07-25 11:15:59 -0400
commit48ee1a065debde5027fc17e49144d348258dc5e4 (patch)
treeb85be5b31a61ad911a89789c2089eaf7852ad4d9 /diplomacy/web/src/gui/wizards/gameCreation/panelChoosePower.js
parent09f9589bfa1a9e19805c2cc7dc58cad4da93f17f (diff)
[Web] Added game creation interface
- Replaced fancybox with react-confirm-alert + dialog box - Removed unused code - Default map can be selected with 1-click - Added ability to select map variants
Diffstat (limited to 'diplomacy/web/src/gui/wizards/gameCreation/panelChoosePower.js')
-rw-r--r--diplomacy/web/src/gui/wizards/gameCreation/panelChoosePower.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/diplomacy/web/src/gui/wizards/gameCreation/panelChoosePower.js b/diplomacy/web/src/gui/wizards/gameCreation/panelChoosePower.js
new file mode 100644
index 0000000..dc400bd
--- /dev/null
+++ b/diplomacy/web/src/gui/wizards/gameCreation/panelChoosePower.js
@@ -0,0 +1,62 @@
+import React from "react";
+import {FancyBox} from "../../components/fancyBox";
+import PropTypes from "prop-types";
+import Octicon, {ArrowLeft} from "@primer/octicons-react";
+
+export class PanelChoosePower extends React.Component {
+ render() {
+ return (
+ <FancyBox title={'Choose your power'} onClose={this.props.cancel}>
+ <div className="row">
+ <div className="col-sm">
+ <button type="button" className="btn btn-secondary btn-sm btn-block inline" onClick={() => {
+ this.props.onUpdateParams({power_name: null});
+ this.props.forward();
+ }}>I just want to observe
+ </button>
+ </div>
+ <div className="col-sm">
+ <button type="button" className="btn btn-secondary btn-sm btn-block inline" onClick={() => {
+ const powerName = this.props.powers[Math.floor(Math.random() * this.props.powers.length)];
+ this.props.onUpdateParams({power_name: powerName});
+ this.props.forward();
+ }}>Choose randomly for me
+ </button>
+ </div>
+ </div>
+ <div className="d-flex flex-row justify-content-center my-2">
+ {(() => {
+ const choice = [];
+ for (let i = 0; i < this.props.powers.length; ++i) {
+ choice.push(
+ <button key={i} type="button"
+ className={`btn btn-secondary btn-sm flex-grow-1 ${i === 0 ? '' : 'ml-sm-1'}`}
+ onClick={() => {
+ this.props.onUpdateParams({power_name: this.props.powers[i]});
+ this.props.forward();
+ }}>
+ {this.props.powers[i]}
+ </button>
+ );
+ }
+ return choice;
+ })()}
+ </div>
+ <div>
+ <button type="button" className="btn btn-secondary btn-sm px-3"
+ onClick={() => this.props.backward()}>
+ <Octicon icon={ArrowLeft}/>
+ </button>
+ </div>
+ </FancyBox>
+ );
+ }
+}
+
+PanelChoosePower.propTypes = {
+ backward: PropTypes.func.isRequired,
+ forward: PropTypes.func.isRequired,
+ cancel: PropTypes.func.isRequired,
+ onUpdateParams: PropTypes.func.isRequired,
+ powers: PropTypes.arrayOf(PropTypes.string).isRequired
+};