Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 6312 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6309 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 { getData } from '../../../helpers/fetchHelpers'
6
 
7
const WebPageModal = ({
8
    isOpen,
9
    closeModal,
10
    websiteUrl,
11
    action
12
}) => {
13
 
14
    const { handleSubmit, register, setValue } = useForm()
15
    const [error, setError] = useState(null);
16
 
17
    const onSubmit = ({ website }) => {
18
        const data = new FormData()
19
        data.append("website", website)
20
 
21
        axios.post(websiteUrl, data)
22
            .then(({ data }) => {
23
                if (!data.success) {
24
                    return setError(data.data)
25
                }
26
                action(data.data)
27
                setError(null)
28
                closeModal()
29
            })
30
            .catch((err) => console.log(err))
31
    }
32
 
33
    useEffect(() => {
34
        getData(websiteUrl)
35
            .then(resp => setValue("website", resp))
36
            .catch(err => console.log(err))
37
    }, []);
38
 
39
    return (
40
        <Modal
41
            size="md"
42
            show={isOpen}
43
            onHide={closeModal}
44
            autoFocus={false}
45
        >
46
            <Modal.Header closeButton>
47
                <Modal.Title>Cambiar</Modal.Title>
48
            </Modal.Header>
49
            <form onSubmit={handleSubmit(onSubmit)}>
50
                <Modal.Body>
51
                    <div className="mb-3">
52
                        <label className="form-label">Página web</label>
53
                        <input
54
                            className="form-control form-control-sm"
55
                            type="text"
56
                            name="website"
57
                            ref={register}
58
                            style={{ padding: '1px' }}
59
                        />
60
                    </div>
61
                    {error && <p>{error}</p>}
62
                </Modal.Body>
63
                <Modal.Footer>
64
                    <Button
65
                        variant="primary"
66
                        type="submit"
67
                    >
68
                        Enviar
69
                    </Button>
70
                    <Button
71
                        variant="default"
72
                        onClick={closeModal}
73
                    >
74
                        Cancelar
75
                    </Button>
76
                </Modal.Footer>
77
            </form>
78
        </Modal >
79
    )
80
}
81
 
82
export default WebPageModal