create-empirica-app
Version:
Create Empirica apps easily.
62 lines (53 loc) • 1.38 kB
JSX
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>
);
}
}