Rev 1650 | Rev 1665 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react'import { useForm } from 'react-hook-form'import { useDispatch, useSelector } from 'react-redux'import { block_options, reasons } from '@app/constants/report'import { addNotification } from '@app/redux/notification/notification.actions'import { closeReportModal } from '@app/redux/report/report.actions'import { sendReport } from '@app/services/reports'import FormInputText from '../UI/form/FormInputText'import SelectInput from '../UI/form/SelectField'import Modal from '../UI/modal/Modal'export default function ReportModal() {const { showModal, type, reportUrl, onComplete } = useSelector((state) => state.report)const dispatch = useDispatch()const { control, errors, getValues, handleSubmit } = useForm()const onSubmit = handleSubmit(async () => {try {const formData = getValues()const { success, data } = await sendReport(reportUrl, formData)if (!success) {throw new Error(data)}if (onComplete) {onComplete()}dispatch(addNotification({ style: 'success', msg: data.message }))dispatch(closeReportModal())} catch (error) {dispatch(addNotification({ style: 'danger', msg: error.message }))}})const closeModal = () => dispatch(closeReportModal())return (<Modalshow={showModal}onClose={closeModal}title={`Reportar ${type.toLowerCase()}`}onAccept={onSubmit}><SelectInputid='reason'name='reason'label='Motivo'options={reasons}control={control}error={errors.reason?.message}rules={{ required: true }}defaultValue={reasons[0].value}/><SelectInputid='block_user'name='block_user'label='Bloquear a este usuario'options={block_options}control={control}error={errors.block_user?.message}rules={{ required: true }}defaultValue={block_options[1].value}/><FormInputTextname='comment'control={control}rules={{ required: true }}error={errors.comment?.message}label='Comentario'placeholder='(Opcional)'/></Modal>)}