Rev 12999 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useEffect } 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 { handleSubmit, register, setValue, watch } = useForm()
useEffect(() => {
register('text')
setValue('text', question.text)
}, [question])
const submit = (data) => {
if (questionType === 'add') {
onSubmit({
...question,
text: data.text,
type: data.type,
maxlength: data.maxlength,
multiline: data.multiline
})
closeModal()
return
}
if (questionType === 'edit') {
onSubmit({
...question,
text: data.text,
type: data.type,
maxlength: data.maxlength,
multiline: data.multiline
})
closeModal()
}
}
return (
<Modal size="md" onHide={closeModal} show={show}>
<Modal.Header closeButton>
<Modal.Title>{`${questionType === 'add' ? 'Agregar' : 'Editar'} sección`}</Modal.Title>
</Modal.Header>
<form onSubmit={handleSubmit(submit)}>
<Modal.Body>
<div className='form-group'>
<label className="form-label">Texto</label>
<DescriptionInput
defaultValue={question.text}
name='text'
onChange={setValue}
/>
</div>
<div className='form-group'>
<label className="form-label">Tipo</label>
<select name='type' className='form-control' ref={register} defaultValue={question.type}>
<option value='open'>Abierto</option>
<option value='simple'>Simple</option>
<option value='multiple'>Multiple</option>
</select>
</div>
{
watch('type') !== 'open'
&&
<>
<div className='form-group'>
<label className="form-label">Longitud máxima</label>
<input type="number" name='maxLength' className='form-control' defaultValue={question.maxlength} />
</div>
<div className='form-group'>
<label className="form-label">Mútiples lineas</label>
<select name='type' className='form-control' ref={register} 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