Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 467 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
466 geraldo 1
import React, { useState, useEffect } from "react";
2
 
3
const InputMultiple = (props) => {
4
 
5
    // get props
6
    const { option, question } = props;
7
 
8
    // init States
468 geraldo 9
    const [checked, setChecked] = useState(option.checked);
466 geraldo 10
 
11
    /**
12
     * Update question answer
13
     */
467 geraldo 14
    const handleAnswer = () => {
466 geraldo 15
        question.answer.includes(option.slug_option) ?
16
            question.answer = removeOption(question.answer, option.slug_option) :
17
            question.answer.push(option.slug_option);
467 geraldo 18
        option.checked = !option.checked;
466 geraldo 19
        setChecked(option.checked);
20
    }
21
 
22
    /**
23
     * Delete existing option
24
     * @param {*} arr
25
     * @param {*} item
26
     * @returns
27
     */
28
    const removeOption = (arr, item) => arr.splice(arr.indexOf(item), 1);
29
 
30
    /**
31
     * componentDidMount
32
     */
33
    useEffect(() => {
468 geraldo 34
        setChecked(option.checked);
466 geraldo 35
    }, [option]);
36
 
37
 
38
    return (
39
        <div>
40
            <input
41
                type="checkbox"
42
                name={`${option.slug_option}[]`}
43
                value={option.slug_option}
44
                checked={checked}
467 geraldo 45
                onChange={() => handleAnswer()}
466 geraldo 46
            />
467 geraldo 47
        </div>)
466 geraldo 48
}
49
 
50
export default InputMultiple;