UNPKG

create-empirica-app

Version:
171 lines (160 loc) 5.01 kB
import React from "react"; import { Centered } from "meteor/empirica:core"; const Radio = ({ selected, name, value, label, onChange }) => ( <label> <input type="radio" name={name} value={value} checked={selected === value} onChange={onChange} /> {label} </label> ); export default class ExitSurvey extends React.Component { static stepName = "ExitSurvey"; state = { age: "", gender: "", strength: "", fair: "", feedback: "" }; handleChange = event => { const el = event.currentTarget; this.setState({ [el.name]: el.value }); }; handleSubmit = event => { event.preventDefault(); this.props.onSubmit(this.state); }; render() { const { player } = this.props; const { age, gender, strength, fair, feedback, education } = this.state; return ( <Centered> <div className="exit-survey"> <h1> Exit Survey </h1> <p> Please submit the following code to receive your bonus:{" "} <strong>{player._id}</strong>. </p> <p> You final <strong>bonus</strong> is in addition of the{" "} <strong>1 base reward</strong> for completing the HIT. </p> <br /> <p> Please answer the following short survey. You do not have to provide any information you feel uncomfortable with. </p> <form onSubmit={this.handleSubmit}> <div className="form-line"> <div> <label htmlFor="age">Age</label> <div> <input id="age" type="number" min="0" max="150" step="1" dir="auto" name="age" value={age} onChange={this.handleChange} /> </div> </div> <div> <label htmlFor="gender">Gender</label> <div> <input id="gender" type="text" dir="auto" name="gender" value={gender} onChange={this.handleChange} autoComplete="off" /> </div> </div> </div> <div> <label>Highest Education Qualification</label> <div> <Radio selected={education} name="education" value="high-school" label="High School" onChange={this.handleChange} /> <Radio selected={education} name="education" value="bachelor" label="US Bachelor's Degree" onChange={this.handleChange} /> <Radio selected={education} name="education" value="master" label="Master's or higher" onChange={this.handleChange} /> <Radio selected={education} name="education" value="other" label="Other" onChange={this.handleChange} /> </div> </div> <div className="form-line thirds"> <div> <label htmlFor="strength"> How would you describe your strength in the game? </label> <div> <textarea dir="auto" id="strength" name="strength" value={strength} onChange={this.handleChange} /> </div> </div> <div> <label htmlFor="fair">Do you feel the pay was fair?</label> <div> <textarea dir="auto" id="fair" name="fair" value={fair} onChange={this.handleChange} /> </div> </div> <div> <label htmlFor="feedback"> Feedback, including problems you encountered. </label> <div> <textarea dir="auto" id="feedback" name="feedback" value={feedback} onChange={this.handleChange} /> </div> </div> </div> <button type="submit">Submit</button> </form> </div> </Centered> ); } }