Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

import React, { useState, useEffect } from "react";
import InputMultiple from "./input-multiple/InputMultiple";

const Option = (props) => {

    // get props
    const { question } = props;

    // init States 
    const [input, setInput] = useState(question.answer);

    /**
     * Update question answer
     * @param {*} value 
     */
    const handleAnswer = (value) => {
        setInput(value);
        question.answer = value;
    }


    /**
     * componentDidMount
     */
    useEffect(() => {
        setInput(question.answer);
    }, [question]);


    return (
        <div>
            {question.options.map((opt, key) => {
                return (
                    <div className="checkbox"
                        key={key}>
                        {question.type == 'multiple' &&
                            <InputMultiple
                                option={opt}
                                question={question} />
                        }
                        {question.type != 'multiple' &&
                            <input
                                type="radio"
                                name={`${opt.slug_question}`}
                                value={opt.slug_option}
                                checked={input == opt.slug_option}
                                onChange={() => handleAnswer(opt.slug_option)}
                            />
                        }
                        <div
                            dangerouslySetInnerHTML={{ __html: opt.text }}
                            className="option"
                        />
                    </div>
                )
            })}
        </div>
    )
}

export default Option;