Proyectos de Subversion LeadersLinked - Backend

Rev

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

import axios from 'axios';
import React, { useEffect, useState } from 'react'
import { Modal, Button } from 'react-bootstrap';
import { useForm } from "react-hook-form";
import { CKEditor } from "ckeditor4-react";
import { getData } from '../../../helpers/fetchHelpers';

const OverviewModal = ({
    isOpen = false,
    closeModal = function () { },
    overviewUrl,
    action,
    overview
}) => {

    const { register, handleSubmit, setValue, watch } = useForm();
    const [error, setError] = useState(null);

    const onSubmit = ({ description }) => {
        const formData = new FormData
        formData.append("description", description)

        axios.post(overviewUrl, formData)
            .then(({ data }) => {
                if(!data.success){
                    return setError('Error')
                }
                action(data.data.description)
            })
            .then(() => {
                setError(null)
                closeModal()
            })
            .catch((err) => setError(err))
    };

    useEffect(() => {
        register("description");
    }, []);

    return (
        <Modal
            size="md"
            show={isOpen}
            onHide={closeModal}
            autoFocus={false}
        >
            <Modal.Header closeButton>
                <Modal.Title>Cambiar</Modal.Title>
            </Modal.Header>
            <form onSubmit={handleSubmit(onSubmit)}>
                <Modal.Body>
                    <div className="mb-3">
                        <label className="form-label">Visión general</label>
                        <CKEditor
                            data={watch("description")}
                            onChange={(e) => {
                                const text = e.editor.getData();
                                setValue("description", text);
                            }}
                            onInstanceReady={(e) => e.editor.setData(overview)}
                            config={{
                                toolbar: [
                                    { name: 'editing', items: ['Scayt'] },
                                    { name: 'links', items: ['Link', 'Unlink'] },
                                    { name: 'paragraph', items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote'] },
                                    { name: 'basicstyles', items: ['Bold', 'Italic', 'Strike', 'RemoveFormat'] },
                                    '/',
                                    { name: 'insert', items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar'] },
                                    { name: 'styles', items: ['Styles', 'Format'] },
                                    { name: 'tools', items: ['Maximize'] }
                                ],
                                removePlugins: 'elementspath,Anchor',
                                heigth: 100
                            }}
                            name="description"
                        />
                        {error && <p>{error}</p>}
                    </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 OverviewModal