Rev 15274 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import axios from 'axios'import React, { useEffect } from 'react'import { Modal } from 'react-bootstrap'import { useForm } from 'react-hook-form'import { useDispatch } from 'react-redux'import { addNotification } from '../../../redux/notification/notification.actions'import DropzoneComponent from '../../../shared/Dropzone/DropzoneComponent'const FooterModal = ({ isOpen, closeModal, footerUploadUrl, action }) => {const { handleSubmit, register, getValues, setValue, clearErrors, errors } = useForm()const dispatch = useDispatch()const onSubmit = ({ footer }) => {const data = new FormData()data.append('footer', footer)axios.post(footerUploadUrl, data).then(({ data }) => {if (!data.success) {typeof data.data === 'string'?dispatch(addNotification({style: 'danger',msg: data.data})): Object.entries(data.data).map(([key, value]) =>value.map(err =>dispatch(addNotification({style: 'danger',msg: `${key}: ${err}`}))))return}action(data.data)closeModal()}).catch(err => console.log(err))}const onUploadedHandler = (file) => {setValue('footer', file)clearErrors('footer')}useEffect(() => {if (getValues('footer')) setValue('footer', '')}, [isOpen])useEffect(() => {register('footer', { required: true })}, [])return (<Modalsize="md"show={isOpen}onHide={closeModal}autoFocus={false}><Modal.Header closeButton><Modal.Title>Pie de página</Modal.Title></Modal.Header><form onSubmit={handleSubmit(onSubmit)}><Modal.Body><div className="form-group"><DropzoneComponentmodalType='IMAGE'onUploaded={onUploadedHandler}settedFile={getValues('footer')}recomendationText='Imagen recomendada de (2480 x 268px)'/></div>{errors.footer && <p>Este campo es requerido</p>}</Modal.Body><Modal.Footer><buttonclassName="btn btn-primary"type="submit">Enviar</button><buttonclassName='btn btn-tertiary'onClick={closeModal}>Cancelar</button></Modal.Footer></form></Modal >)}export default FooterModal