// Copyright 2020 Thomas Hintz // // This file is part of the Alpha Centauri Farming project. // // The Alpha Centauri Farming project is free software: you can // redistribute it and/or modify it under the terms of the GNU General // Public License as published by the Free Software Foundation, either // version 3 of the License, or (at your option) any later version. // // The Alpha Centauri Farming project is distributed in the hope that // it will be useful, but WITHOUT ANY WARRANTY; without even the // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with the Alpha Centauri Farming project. If not, see // . import React, { Fragment } from 'react' import { connect } from 'react-redux' import { GroupBox, Row, Col, Button } from '../widgets.jsx' import { startOrJoinGame } from '../start/actions.js' import { start } from '../app/actions.js' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faArrowCircleLeft, faCog } from '@fortawesome/free-solid-svg-icons' class InputRow extends React.Component { render() { return ( ); } } class NewGame extends React.Component { constructor(props) { super(props); this.state = { showSettings: false, playerName: '', checkedColor: props.colors[0], gameId: typeof props.gameId === 'undefined' ? -1 : props.gameId, gameName: props.gameName || '', downPayment: 0, loanInterest: 0, maxDebt: 50000, auditThreshold: 250000, startingCash: 5000, startingDebt: 5000, trade: true }; } handleInputChange = e => { const target = e.target, value = target.type === 'checkbox' && target.name !== 'trade' ? target.name : target.value, name = target.type === 'checkbox' && target.name !== 'trade' ? 'checkedColor' : target.name; this.setState({ [name]: value }); } handleSubmit = e => { e.preventDefault(); this.props.startOrJoinGame(Object.assign({ type: this.props.type }, this.state)); } handleBack = e => { e.preventDefault(); this.props.start(); } toggleSettings = e => { e.preventDefault(); this.setState({ showSettings: !this.state.showSettings }); } render() { let playerNameInput, titleBar = !this.props.hideBack ? ( {this.props.title} ) : this.props.title, colors = this.props.colors.map(c => ( ) ), gameName = this.props.showGameName && ( ), settingsClass = this.state.showSettings ? '' : 'hidden', mainScreenClass = !this.state.showSettings ? '' : 'hidden'; return (
{colors}

{gameName}
{this.props.showGameName ? ( ) : ()}
); } } export default connect( null, { startOrJoinGame, start } )(NewGame)