Proyectos de Subversion LeadersLinked - SPA

Rev

Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3688 stevensc 1
import React from 'react'
2
import { useDispatch } from 'react-redux'
3
import { useForm } from 'react-hook-form'
4
 
5
import { axios } from '@utils'
6
import { addNotification } from '@store/notification/notification.actions'
7
 
8
import Modal from '@components/UI/modal/Modal'
9
import Input from '@components/UI/inputs/Input'
10
 
11
export default function WebsiteModal({
12
  show = false,
13
  website = '',
14
  groupId,
15
  onClose = () => {},
16
  onConfirm = () => {}
17
}) {
18
  const dispatch = useDispatch()
19
 
20
  const {
21
    control,
22
    handleSubmit,
23
    formState: { errors, isSubmitting }
24
  } = useForm({
25
    defaultValues: {
26
      website: ''
27
    },
28
    values: {
29
      website
30
    }
31
  })
32
 
33
  const onSubmit = handleSubmit(async ({ website }) => {
34
    const url = `/group/my-groups/website/${groupId}`
35
    const formData = new FormData()
36
    formData.append('website', website)
37
 
38
    try {
39
      const response = await axios.post(url, formData)
40
      const { data, success } = response.data
41
 
42
      if (!success) {
43
        throw new Error('Error al editar el tipo de grupo')
44
      }
45
 
46
      onConfirm(data)
47
      onClose()
48
    } catch (error) {
49
      dispatch(addNotification({ style: 'danger', msg: error.message }))
50
    }
51
  })
52
 
53
  return (
54
    <Modal
55
      title='Sitio web'
56
      show={show}
57
      onClose={onClose}
58
      onAccept={onSubmit}
59
      loading={isSubmitting}
60
    >
61
      <Input control={control} name='website' error={errors.website?.message} />
62
    </Modal>
63
  )
64
}