Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 564 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
561 geraldo 1
import React, { useState, useEffect } from "react";
2
import InputMultiple from "./input-multiple/InputMultiple";
3
 
4
const Option = (props) => {
5
 
6
    // get props
7
    const { question } = props;
8
 
9
    // init States
10
    const [input, setInput] = useState(question.answer);
11
 
12
    /**
13
     * Update question answer
14
     * @param {*} value
15
     */
16
    const handleAnswer = (value) => {
17
        setInput(value);
18
        question.answer = value;
19
    }
20
 
21
 
22
    /**
23
     * componentDidMount
24
     */
25
    useEffect(() => {
26
        setInput(question.answer);
27
    }, [question]);
28
 
29
 
30
    return (
31
        <div>
32
            {question.options.map((opt, key) => {
33
                return (
34
                    <div className="checkbox"
35
                        key={key}>
36
                        {question.type == 'multiple' &&
37
                            <InputMultiple
38
                                option={opt}
39
                                question={question} />
40
                        }
41
                        {question.type != 'multiple' &&
42
                            <input
43
                                type="radio"
44
                                name={`${opt.slug_question}`}
45
                                value={opt.slug_option}
46
                                checked={input == opt.slug_option}
47
                                onChange={() => handleAnswer(opt.slug_option)}
48
                            />
49
                        }
50
                        <div
51
                            dangerouslySetInnerHTML={{ __html: opt.text }}
52
                            className="option"
53
                        />
54
                    </div>
55
                )
56
            })}
57
        </div>
58
    )
59
}
60
 
61
export default Option;