Rev 13006 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useEffect, useState } from 'react'import { Button, Modal } from 'react-bootstrap'import { useForm } from 'react-hook-form'import DescriptionInput from '../../../shared/DescriptionInput'const QuestionModal = ({ show, closeModal, question, onSubmit, questionType }) => {const { register, setValue, watch } = useForm()const [values, setValues] = useState({type: 'open',maxlength: '0',multiline: '0'})const handleChange = ({ target }) => {setValues({ ...values, [target.name]: target.value })}useEffect(() => {register('text')setValue('text', question.text)}, [question])const submit = (e) => {e.preventDefault()if (questionType === 'add') {onSubmit({...question,text: watch('text'),type: values.type,maxlength: values.maxlength,multiline: values.multiline,answer: values.type === 'multiple' ? [] : ''})closeModal()return}if (questionType === 'edit') {onSubmit({...question,text: watch('text'),type: values.type,maxlength: values.maxlength,multiline: values.multiline,answer: values.type === 'multiple' ? [] : ''})closeModal()}}return (<Modal size="md" onHide={closeModal} show={show}><Modal.Header closeButton><Modal.Title>{`${questionType === 'add' ? 'Agregar' : 'Editar'} pregunta`}</Modal.Title></Modal.Header><form onSubmit={submit}><Modal.Body><div className='form-group'><label className="form-label">Texto</label><DescriptionInputdefaultValue={question.text}name='text'onChange={setValue}/></div><div className='form-group'><label className="form-label">Tipo</label><select name='type' className='form-control' onChange={handleChange} defaultValue={question.type}><option value='open'>Abierto</option><option value='simple'>Simple</option><option value='multiple'>Multiple</option></select></div>{values.type === 'open'&&<><div className='form-group'><label className="form-label">Longitud máxima</label><input type="number" name='maxLength' className='form-control' onChange={handleChange} defaultValue={question.maxlength} /></div><div className='form-group'><label className="form-label">Mútiples lineas</label><select name='multiline' className='form-control' onChange={handleChange} defaultValue={question.multiline}><option value='open'>Si</option><option value='simple'>No</option></select></div></>}</Modal.Body><Modal.Footer><Button variant="primary" type='submit'>Enviar</Button><Button variant="danger" onClick={closeModal}>Cancelar</Button></Modal.Footer></form></Modal >)}export default QuestionModal