QuestionItem.jsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import { h, render, Component } from 'preact'; // eslint-disable-line no-unused-vars
  2. // module02: Question Item
  3. // outputs the current question
  4. export default class QuestionItem extends Component {
  5. render () {
  6. const keyPrefix = `${this.props.currentGroup}_${this.props.currentQuestion}`;
  7. const hasQuestion = this.props.currentGroup < 2;
  8. return (
  9. <div className="question question__manipula">
  10. <div className="question__title">{this.props.question.text}</div>
  11. { hasQuestion
  12. ? <div className="question__options">
  13. {this.props.answers.map((antwort, index) => {
  14. const markerClass = index === this.props.currentAnswerIndex ? 'question__options__item--marked' : '';
  15. const correctClass = antwort.korrekt && this.props.currentAnswerIndex !== null ? 'question__options__item--correct' : '';
  16. return (
  17. <p className={`question__options__item ${markerClass} ${correctClass}`} key={`${keyPrefix}_${index}`}>
  18. <input class="checkbox-input" name="option" id={`option-${index}`} value="1" type="radio" />
  19. <label onClick={ () => this.props.setAnswer(antwort) } class="checkbox-label" for={`option-${index}`}>
  20. {antwort.antwort}
  21. </label>
  22. </p>
  23. );
  24. })}
  25. </div>
  26. : []}
  27. </div>
  28. );
  29. }
  30. }