Rev 468 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useState, useEffect } from "react";import Option from "../option/Option";const Question = (props) => {// get propsconst { question, backendVars } = props;// init Statesconst [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 className="col-md-12 col-sm-12 col-xs-12 np-padding"><div className="form-group" ><h6>{backendVars.LBL_QUESTION} #{question.position + 1}</h6><divdangerouslySetInnerHTML={{ __html: question.text }}className="title"/></div>{question.type == 'open' &&<div className="form-group">{question.multiline == 1 ? (<textareaclassName="form-control"rows="5"value={input}maxLength={question.maxlength}name={question.slug_question}onChange={e => handleAnswer(e.target.value)}/>) : (<inputtype="text"className="form-control"value={input}maxLength={question.maxlength}name={question.slug_question}onChange={e => handleAnswer(e.target.value)}/>)}</div>}{question.type == 'rating-range' &&<ul className="ratin-range">{[...Array(parseInt(question.range))].map((x, i) => {return (<li><div className="checkbox"key={i}><inputtype="radio"checked={input == i + 1}name={question.slug_question}value={i + 1}onChange={e => handleAnswer(i + 1)}/><div className="option">{i + 1}</div></div></li>)})}</ul>}{(question.type == 'simple' || question.type == 'rating-open' || question.type == 'multiple') &&<div className="form-group">{question.options.length > 0 &&<Option question={question} />}</div>}</div>)}export default Question;