AutorÃa | Ultima modificación | Ver Log |
import React, { useState } from "react";import {axios} from "../../../utils";import { useForm } from "react-hook-form";import FormErrorFeedback from "../../../shared/form-error-feedback/FormErrorFeedback";import Spinner from "../../../shared/loading-spinner/Spinner";import styles from "./addGroupModal.module.scss";const AddGroupTab = (props) => {// props destructuringconst { onClose } = props;// statesconst [loading, setLoading] = useState(false);// react hook formconst { register, handleSubmit, errors, setError, getValues } = useForm();const handleOnSubmit = async (data) => {setLoading(true);const formData = new FormData();Object.entries(data).map(([key, value]) => {formData.append(key, value);});const response = await axios.post("/chat/create-group", formData);const resData = await response.data;(resData);if (resData.success) {onClose();} else {if (typeof resData.data === "object") {Object.entries(resData.data).map(([key, value]) => {if (Object.keys(getValues()).includes(key)) {setError(key, {type: "manual",message: value[0],});}});}}setLoading(false);};return (<div className={styles.addGroupTab}><form onSubmit={handleSubmit(handleOnSubmit)}><label htmlFor="name" className={styles.label}>Nombre del grupo</label><inputtype="text"name="name"id="name"maxLength="50"className={styles.input}autoFocusref={register}/>{errors.name && (<div className={styles.errorMessage}><FormErrorFeedback>{errors.name.message}</FormErrorFeedback></div>)}<div className={styles.buttonsContainer}><button className={styles.button} onClick={onClose} type="button">Cancelar</button><button className={styles.button} type="submit">Crear</button></div></form>{loading && (<div className="spinner-container"><Spinner /></div>)}</div>);};export default AddGroupTab;