Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
6583 stevensc 1
import axios from 'axios';
2
import React, { useEffect, useState } from 'react'
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';
7
 
8
const OverviewModal = ({
9
    isOpen = false,
10
    closeModal = function () { },
11
    overviewUrl,
6588 stevensc 12
    action,
13
    overview
6583 stevensc 14
}) => {
15
 
16
    const { register, handleSubmit, setValue, watch } = useForm();
17
    const [error, setError] = useState(null);
18
 
19
    const onSubmit = ({ description }) => {
20
        const formData = new FormData
21
        formData.append("description", description)
22
 
23
        axios.post(overviewUrl, formData)
24
            .then(({ data }) => {
6597 stevensc 25
                if(!data.success){
26
                    return setError('Error')
27
                }
28
                action(data.data.description)
6583 stevensc 29
            })
30
            .then(() => {
31
                setError(null)
32
                closeModal()
33
            })
34
            .catch((err) => setError(err))
35
    };
36
 
37
    useEffect(() => {
38
        register("description");
39
    }, []);
40
 
41
    return (
42
        <Modal
6589 stevensc 43
            size="md"
6583 stevensc 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">
6588 stevensc 54
                        <label className="form-label">Visión general</label>
6583 stevensc 55
                        <CKEditor
56
                            data={watch("description")}
57
                            onChange={(e) => {
58
                                const text = e.editor.getData();
59
                                setValue("description", text);
60
                            }}
6588 stevensc 61
                            onInstanceReady={(e) => e.editor.setData(overview)}
6583 stevensc 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
                    >
86
                        Enviar
87
                    </Button>
88
                    <Button variant="danger" onClick={closeModal}>
89
                        Cancelar
90
                    </Button>
91
                </Modal.Footer>
92
            </form>
93
        </Modal >
94
    )
95
}
96
 
97
export default OverviewModal