Rev 2802 | Rev 3278 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react'import { useDispatch, useSelector } from 'react-redux'import { Controller, useForm } from 'react-hook-form'import { axios } from '@utils'import { addNotification } from '@store/notification/notification.actions'import Modal from '../modal/Modal'import FormErrorFeedback from '../form/FormErrorFeedback'import DropzoneComponent from '@components/dropzone/DropzoneComponent'const CoverModal = ({show = false,sizes = '',onClose = () => {},onChange = () => {},url = ''}) => {const labels = useSelector(({ intl }) => intl.labels)const dispatch = useDispatch()const {control,formState: { isSubmitting },handleSubmit} = useForm()const onSubmit = handleSubmit(async ({ cover }) => {try {const formData = new FormData()formData.append('cover', cover)const response = await axios.post(url, formData)const { data, success } = responseif (!success) throw new Error('Error al actualizar el portada')onChange(data)onClose()} catch (error) {console.log(error)dispatch(addNotification({ style: 'danger', msg: error.message }))}})return (<Modaltitle={labels.cover}show={show}onClose={onClose}onAccept={onSubmit}loading={isSubmitting}><Controllername='cover'control={control}rules={{ required: 'Portada requerida' }}render={({ field: { onChange, value }, fieldState: { error } }) => (<><DropzoneComponentmodalType='IMAGE'onUploaded={onChange}settedFile={value}recomendationText={`Imágenes recomendadas de ${sizes}`}/>{error && <FormErrorFeedback>{error.message}</FormErrorFeedback>}</>)}/></Modal>)}export default CoverModal