UNPKG

create-empirica-app

Version:
62 lines (53 loc) 1.38 kB
import React from "react"; import Slider from "meteor/empirica:slider"; export default class TaskResponse extends React.Component { handleChange = num => { const { player } = this.props; const value = Math.round(num * 100) / 100; player.round.set("value", value); }; handleSubmit = event => { event.preventDefault(); this.props.player.stage.submit(); }; renderSubmitted() { return ( <div className="task-response"> <div className="response-submitted"> <h5>Waiting on other players...</h5> Please wait until all players are ready </div> </div> ); } renderSlider() { const { player } = this.props; const value = player.round.get("value"); return ( <Slider min={0} max={1} stepSize={0.01} labelStepSize={0.25} onChange={this.handleChange} value={value} hideHandleOnEmpty /> ); } render() { const { player } = this.props; // If the player already submitted, don't show the slider or submit button if (player.stage.submitted) { return this.renderSubmitted(); } return ( <div className="task-response"> <form onSubmit={this.handleSubmit}> {this.renderSlider()} <button type="submit">Submit</button> </form> </div> ); } }