// ============================================================================== // Copyright (C) 2019 - Philip Paquette, Steven Bocco // // This program is free software: you can redistribute it and/or modify it under // the terms of the GNU Affero General Public License as published by the Free // Software Foundation, either version 3 of the License, or (at your option) any // later version. // // This program 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 Affero General Public License for more // details. // // You should have received a copy of the GNU Affero General Public License along // with this program. If not, see . // ============================================================================== import React from 'react'; import {Forms} from "../components/forms"; import {STRINGS} from "../../diplomacy/utils/strings"; import PropTypes from "prop-types"; export class CreateForm extends React.Component { constructor(props) { super(props); this.state = this.initState(); } initState() { const state = { game_id: '', power_name: '', n_controls: 7, deadline: 300, registration_password: '' }; for (let rule of STRINGS.PUBLIC_RULES) state[`rule_${rule.toLowerCase()}`] = false; return state; } render() { const onChange = Forms.createOnChangeCallback(this, this.props.onChange); const onSubmit = Forms.createOnSubmitCallback(this, this.props.onSubmit); return (
{Forms.createRow( Forms.createColLabel('game_id', 'Game ID (optional)'), )} {Forms.createRow( Forms.createColLabel('power_name', 'power:'), )} {Forms.createRow( Forms.createColLabel('n_controls', 'number of required players:'), )} {Forms.createRow( Forms.createColLabel('deadline', 'deadline (in seconds)'), )} {Forms.createRow( Forms.createColLabel('registration_password', 'registration password'), )}
RULES:
{STRINGS.PUBLIC_RULES.map((rule, index) => (
{Forms.createCheckbox( `rule_${rule.toLowerCase()}`, rule, Forms.getValue(this.state, `rule_${rule.toLowerCase()}`), onChange)}
))}
{Forms.createRow('', Forms.createSubmit('create a game', true, onSubmit))}
); } } CreateForm.propTypes = { onChange: PropTypes.func, onSubmit: PropTypes.func };