/* * Copyright 2018 The boardgame.io Authors. * * Use of this source code is governed by a MIT-style * license that can be found in the LICENSE file or at * https://opensource.org/licenses/MIT. */ import React from 'react'; type LoginFormProps = { playerName?: string; onEnter: (playerName: string) => void; }; type LoginFormState = { playerName?: string; nameErrorMsg: string; }; class LobbyLoginForm extends React.Component { static defaultProps = { playerName: '', }; state = { playerName: this.props.playerName, nameErrorMsg: '', }; render() { return (

Choose a player name:


{this.state.nameErrorMsg}
); } onClickEnter = () => { if (this.state.playerName === '') return; this.props.onEnter(this.state.playerName); }; onKeyPress = (event: React.KeyboardEvent) => { if (event.key === 'Enter') { this.onClickEnter(); } }; onChangePlayerName = (event: React.ChangeEvent) => { const name = event.target.value.trim(); this.setState({ playerName: name, nameErrorMsg: name.length > 0 ? '' : 'empty player name', }); }; } export default LobbyLoginForm;