Proyectos de Subversion LeadersLinked - Backend

Rev

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