Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 12999 | Rev 13001 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 12999 Rev 13000
Línea 1... Línea 1...
1
import React, { useEffect } from 'react'
1
import React, { useEffect, useState } from 'react'
2
import { Button, Modal } from 'react-bootstrap'
2
import { Button, Modal } from 'react-bootstrap'
3
import { useForm } from 'react-hook-form'
3
import { useForm } from 'react-hook-form'
4
import DescriptionInput from '../../../shared/DescriptionInput'
4
import DescriptionInput from '../../../shared/DescriptionInput'
Línea 5... Línea 5...
5
 
5
 
Línea 6... Línea 6...
6
const QuestionModal = ({ show, closeModal, question, onSubmit, questionType }) => {
6
const QuestionModal = ({ show, closeModal, question, onSubmit, questionType }) => {
-
 
7
 
-
 
8
	const { register, setValue, watch } = useForm()
-
 
9
	const [values, setValues] = useState({
-
 
10
		type: 'open',
-
 
11
		maxlength: '0',
-
 
12
		multiline: '0'
-
 
13
	})
-
 
14
 
-
 
15
	const handleChange = ({ target }) => {
Línea 7... Línea 16...
7
 
16
		setValues({ ...values, [target.name]: target.value })
8
	const { handleSubmit, register, setValue, watch } = useForm()
17
	}
9
 
18
 
10
	useEffect(() => {
19
	useEffect(() => {
Línea 11... Línea 20...
11
		register('text')
20
		register('text')
12
		setValue('text', question.text)
21
		setValue('text', question.text)
13
	}, [question])
22
	}, [question])
14
 
23
 
15
	const submit = (data) => {
24
	const submit = () => {
16
		if (questionType === 'add') {
25
		if (questionType === 'add') {
17
			onSubmit({
26
			onSubmit({
18
				...question,
27
				...question,
19
				text: data.text,
28
				text: watch('text'),
20
				type: data.type,
29
				type: values.type,
21
				maxlength: data.maxlength,
30
				maxlength: values.maxlength,
22
				multiline: data.multiline
31
				multiline: values.multiline
23
			})
32
			})
24
			closeModal()
33
			closeModal()
25
			return
34
			return
26
		}
35
		}
27
		if (questionType === 'edit') {
36
		if (questionType === 'edit') {
28
			onSubmit({
37
			onSubmit({
29
				...question,
38
				...question,
30
				text: data.text,
39
				text: watch('text'),
31
				type: data.type,
40
				type: values.type,
32
				maxlength: data.maxlength,
41
				maxlength: values.maxlength,
33
				multiline: data.multiline
42
				multiline: values.multiline
Línea 34... Línea 43...
34
			})
43
			})
35
			closeModal()
44
			closeModal()
36
		}
45
		}
37
	}
46
	}
38
 
47
 
39
	return (
48
	return (
40
		<Modal size="md" onHide={closeModal} show={show}>
49
		<Modal size="md" onHide={closeModal} show={show}>
41
			<Modal.Header closeButton>
50
			<Modal.Header closeButton>
42
				<Modal.Title>{`${questionType === 'add' ? 'Agregar' : 'Editar'} pregunta`}</Modal.Title>
51
				<Modal.Title>{`${questionType === 'add' ? 'Agregar' : 'Editar'} pregunta`}</Modal.Title>
43
			</Modal.Header>
52
			</Modal.Header>
44
			<form onSubmit={handleSubmit(submit)}>
53
			<form onSubmit={submit}>
Línea 51... Línea 60...
51
							onChange={setValue}
60
							onChange={setValue}
52
						/>
61
						/>
53
					</div>
62
					</div>
54
					<div className='form-group'>
63
					<div className='form-group'>
55
						<label className="form-label">Tipo</label>
64
						<label className="form-label">Tipo</label>
56
						<select name='type' className='form-control' ref={register} defaultValue={question.type}>
65
						<select name='type' className='form-control' onChange={handleChange} defaultValue={question.type}>
57
							<option value='open'>Abierto</option>
66
							<option value='open'>Abierto</option>
58
							<option value='simple'>Simple</option>
67
							<option value='simple'>Simple</option>
59
							<option value='multiple'>Multiple</option>
68
							<option value='multiple'>Multiple</option>
60
						</select>
69
						</select>
61
					</div>
70
					</div>
62
					{
71
					{
63
						watch('type') !== 'open'
72
						values.type !== 'open'
64
						&&
73
						&&
65
						<>
74
						<>
66
							<div className='form-group'>
75
							<div className='form-group'>
67
								<label className="form-label">Longitud máxima</label>
76
								<label className="form-label">Longitud máxima</label>
68
								<input type="number" name='maxLength' className='form-control' defaultValue={question.maxlength} />
77
								<input type="number" name='maxLength' className='form-control' onChange={handleChange} value={values.maxlength} />
69
							</div>
78
							</div>
70
							<div className='form-group'>
79
							<div className='form-group'>
71
								<label className="form-label">Mútiples lineas</label>
80
								<label className="form-label">Mútiples lineas</label>
72
								<select name='type' className='form-control' ref={register} defaultValue={question.multiline}>
81
								<select name='type' className='form-control' onChange={handleChange} defaultValue={question.multiline}>
73
									<option value='open'>Si</option>
82
									<option value='open'>Si</option>
74
									<option value='simple'>No</option>
83
									<option value='simple'>No</option>
75
								</select>
84
								</select>
76
							</div>
85
							</div>
77
						</>
86
						</>