Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 6340 | Rev 6353 | Ir a la última revisión | | Comparar con el anterior | 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
 
6344 stevensc 14
    const { handleSubmit, register, setValue, watch } = useForm()
6309 stevensc 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
                }
6313 stevensc 26
                action(data.data.website)
6312 stevensc 27
            })
6313 stevensc 28
            .then(() => {
6309 stevensc 29
                setError(null)
30
                closeModal()
31
            })
32
            .catch((err) => console.log(err))
33
    }
34
 
35
    useEffect(() => {
36
        getData(websiteUrl)
6340 stevensc 37
            .then((resp) => setValue("website", resp.website))
6309 stevensc 38
            .catch(err => console.log(err))
39
 
6344 stevensc 40
        console.log(watch("website"))
41
    }, [isOpen]);
42
 
6309 stevensc 43
    return (
44
        <Modal
45
            size="md"
46
            show={isOpen}
47
            onHide={closeModal}
48
            autoFocus={false}
49
        >
50
            <Modal.Header closeButton>
51
                <Modal.Title>Cambiar</Modal.Title>
52
            </Modal.Header>
53
            <form onSubmit={handleSubmit(onSubmit)}>
54
                <Modal.Body>
55
                    <div className="mb-3">
56
                        <label className="form-label">Página web</label>
57
                        <input
58
                            className="form-control form-control-sm"
59
                            type="text"
60
                            name="website"
61
                            ref={register}
62
                            style={{ padding: '1px' }}
63
                        />
64
                    </div>
65
                    {error && <p>{error}</p>}
66
                </Modal.Body>
67
                <Modal.Footer>
68
                    <Button
69
                        variant="primary"
70
                        type="submit"
71
                    >
72
                        Enviar
73
                    </Button>
74
                    <Button
75
                        variant="default"
76
                        onClick={closeModal}
77
                    >
78
                        Cancelar
79
                    </Button>
80
                </Modal.Footer>
81
            </form>
82
        </Modal >
83
    )
84
}
85
 
86
export default WebPageModal