Rev 3269 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useEffect } from "react";import { useLocation } from "react-router-dom";import { useDispatch } from "react-redux";import { useForm } from "react-hook-form";import { axios } from "../../utils";import { addNotification } from "../../redux/notification/notification.actions";import CKEditor from "@components/common/ckeditor/Ckeditor";import FormErrorFeedback from "components/UI/form/FormErrorFeedback";import Modal from "components/UI/modal/Modal";const OverviewModal = ({isOpen = false,overview = "",id = "",closeModal = function () {},onComplete = function () {},}) => {const { pathname } = useLocation();const dispatch = useDispatch();const {register,handleSubmit,setValue,formState: { errors },} = useForm();const onSubmit = handleSubmit(({ description }) => {const typesUrl = {profile: `/profile/my-profiles/extended/${id}`,group: `/group/my-groups/extended/${id}`,};const type = pathname.split("/")[1];const formData = new FormData();formData.append("description", description);axios.post(typesUrl[type], formData).then((response) => {const { data, success } = response.data;if (!success) {const errorMessage =typeof data === "string"? data: Object.entries(data).map(([key, value]) => `${key}: ${value}`)[0];throw new Error(errorMessage);}onComplete(data.description || data);closeModal();}).catch((err) => {dispatch(addNotification({ style: "danger", msg: err.message }));});});useEffect(() => {register("description", { required: "Este campo es requerido" });}, []);return (<Modaltitle="Visión general"show={isOpen}onClose={closeModal}onAccept={onSubmit}><CKEditoronChange={(value) => setValue("description", value)}defaultValue={overview}/>{errors.description && (<FormErrorFeedback>{errors.description.message}</FormErrorFeedback>)}</Modal>);};export default OverviewModal;