Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3688 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3719 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
}