52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
const preact = require('preact');
|
|
const { Component } = require('preact');
|
|
|
|
class SpawnButton extends Component {
|
|
constructor(props) {
|
|
super(props);
|
|
|
|
this.state = { value: null, enabled: false };
|
|
|
|
this.handleInput = this.handleInput.bind(this);
|
|
this.handleSubmit = this.handleSubmit.bind(this);
|
|
this.enable = this.enable.bind(this);
|
|
}
|
|
|
|
handleInput(event) {
|
|
console.log(event.target.value);
|
|
this.setState({ value: event.target.value });
|
|
}
|
|
|
|
handleSubmit(event) {
|
|
event.preventDefault();
|
|
this.props.spawn(this.state.value);
|
|
this.setState({ value: null, enabled: false });
|
|
}
|
|
|
|
enable() {
|
|
this.setState({ enabled: !this.state.enabled });
|
|
}
|
|
|
|
render() {
|
|
const selected = this.state.enabled ? 'selected' : '';
|
|
return (
|
|
<div
|
|
key={this.props.i}
|
|
class={`menu-construct spawn-btn ${selected}`}
|
|
onClick={() => this.enable()} >
|
|
<h1>+</h1>
|
|
<br />
|
|
<button
|
|
class="login-btn"
|
|
disabled={!this.state.enabled}
|
|
onClick={this.handleSubmit}
|
|
type="submit">
|
|
spawn
|
|
</button>
|
|
<h1>¤50</h1>
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
module.exports = SpawnButton; |