Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useState } from 'react'import { axios } from '../../../utils'import { useForm } from 'react-hook-form'import { Button, Modal } from 'react-bootstrap'import { addNotification } from '../../../redux/notification/notification.actions'import { useDispatch, useSelector } from 'react-redux'import IconButton from '@mui/material/IconButton'import EditIcon from '@mui/icons-material/EditOutlined'import Spinner from '../../UI/Spinner'import LoaderContainer from '../../UI/LoaderContainer'import FormErrorFeedback from '../../UI/FormErrorFeedback'const Website = ({ groupId, website: defaultValue }) => {const [website, setWebsite] = useState('')const [isModalOpen, setIsModalOpen] = useState(false)const [loading, setLoading] = useState(false)const labels = useSelector(({ intl }) => intl.labels)const dispatch = useDispatch()const { register, errors, handleSubmit, getValues, setError } = useForm()const handleModalOpen = () => {setIsModalOpen(!isModalOpen)}const onSubmitHandler = async (data) => {setLoading(true)const formData = new FormData()Object.entries(data).map(([key, value]) => formData.append(key, value))await axios.post(`/group/my-groups/website/${groupId}`, formData).then((response) => {const { data, success } = response.dataif (!success) {const resError = dataif (resError.constructor.name !== 'Object') {dispatch(addNotification({ style: 'danger', msg: resError }))return}Object.entries(resError).map(([key, value]) => {if (key in getValues()) {setError(key, {type: 'manual',message: Array.isArray(value) ? value[0] : value,})}})return}setWebsite(data)handleModalOpen()})setLoading(false)}return (<><div className="experience__user-card"><div className="card__options-container"><h4>Página web</h4><IconButton onClick={handleModalOpen}><EditIcon /></IconButton></div><a href={website} target="_blank" rel="noreferrer"><p>{website}</p></a></div><Modal show={isModalOpen} onHide={handleModalOpen}><Modal.Header closeButton><Modal.Title>Página web</Modal.Title></Modal.Header><form onSubmit={handleSubmit(onSubmitHandler)}><Modal.Body><inputtype="text"name="website"id="website"ref={register}defaultValue={website}/>{errors.website && (<FormErrorFeedback>{errors.website.message}</FormErrorFeedback>)}</Modal.Body><Modal.Footer><Button type="submit">{labels.accept}</Button><Button variant="danger" onClick={handleModalOpen}>{labels.cancel}</Button></Modal.Footer></form>{loading && (<LoaderContainer><Spinner /></LoaderContainer>)}</Modal></>)}export default Website