Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 6597 | Rev 11160 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
11152 stevensc 1
import axios from 'axios'
6583 stevensc 2
import React, { useEffect, useState } from 'react'
11152 stevensc 3
import { Modal, Button } from 'react-bootstrap'
4
import { useForm } from 'react-hook-form'
5
import { CKEditor } from 'ckeditor4-react'
6
import { getData } from '../../../helpers/fetchHelpers'
6583 stevensc 7
 
8
const OverviewModal = ({
11152 stevensc 9
	isOpen = false,
10
	closeModal = function () { },
11
	overviewUrl,
12
	action,
13
	overview
6583 stevensc 14
}) => {
15
 
11152 stevensc 16
	const { register, handleSubmit, setValue, watch } = useForm()
17
	const [error, setError] = useState(null)
6583 stevensc 18
 
11152 stevensc 19
	const onSubmit = ({ description }) => {
20
		const formData = new FormData
21
		formData.append('description', description)
6583 stevensc 22
 
11152 stevensc 23
		axios.post(overviewUrl, formData)
24
			.then(({ data }) => {
25
				if (!data.success) {
26
					return setError('Error')
27
				}
28
				action(data.data.description)
29
			})
30
			.then(() => {
31
				setError(null)
32
				closeModal()
33
			})
34
			.catch((err) => setError(err))
35
	}
6583 stevensc 36
 
11152 stevensc 37
	useEffect(() => {
38
		register('description')
39
	}, [])
6583 stevensc 40
 
11152 stevensc 41
	return (
42
		<Modal
43
			size="md"
44
			show={isOpen}
45
			onHide={closeModal}
46
			autoFocus={false}
47
		>
48
			<Modal.Header closeButton>
49
				<Modal.Title>Cambiar</Modal.Title>
50
			</Modal.Header>
51
			<form onSubmit={handleSubmit(onSubmit)}>
52
				<Modal.Body>
53
					<div className="mb-3">
54
						<label className="form-label">Visión general</label>
55
						<CKEditor
56
							data={watch('description')}
57
							onChange={(e) => {
58
								const text = e.editor.getData()
59
								setValue('description', text)
60
							}}
61
							onInstanceReady={(e) => e.editor.setData(overview)}
62
							config={{
63
								toolbar: [
64
									{ name: 'editing', items: ['Scayt'] },
65
									{ name: 'links', items: ['Link', 'Unlink'] },
66
									{ name: 'paragraph', items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote'] },
67
									{ name: 'basicstyles', items: ['Bold', 'Italic', 'Strike', 'RemoveFormat'] },
68
									'/',
69
									{ name: 'insert', items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar'] },
70
									{ name: 'styles', items: ['Styles', 'Format'] },
71
									{ name: 'tools', items: ['Maximize'] }
72
								],
73
								removePlugins: 'elementspath,Anchor',
74
								heigth: 100
75
							}}
76
							name="description"
77
						/>
78
						{error && <p>{error}</p>}
79
					</div>
80
				</Modal.Body>
81
				<Modal.Footer>
82
					<Button
83
						variant="primary"
84
						type="submit"
85
					>
6583 stevensc 86
                        Enviar
11152 stevensc 87
					</Button>
88
					<Button className='btn-tertiary' onClick={closeModal}>
6583 stevensc 89
                        Cancelar
11152 stevensc 90
					</Button>
91
				</Modal.Footer>
92
			</form>
93
		</Modal >
94
	)
6583 stevensc 95
}
96
 
97
export default OverviewModal