Proyectos de Subversion LeadersLinked - Backend

Rev

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