Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3685 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3685 stevensc 1
import React, { useEffect } from 'react';
2
import { useParams } from 'react-router-dom';
3682 stevensc 3
 
3685 stevensc 4
import { useFetch } from '@hooks';
5
import { axios } from '@utils';
6
import { Spinner } from '@shared/components';
3688 stevensc 7
import GroupActions from '@groups/components/sections-cards/group-actions/GroupActions';
3685 stevensc 8
import Overview from '@components/overview/Overview';
3688 stevensc 9
import Type from '@groups/components/sections-cards/type/Type';
10
import Industry from '@groups/components/sections-cards/industry/Industry';
11
import Accessibility from '@groups/components/sections-cards/accessibility/Accessibility';
12
import Website from '@groups/components/sections-cards/website/Website';
13
import Privacy from '@groups/components/sections-cards/privacy/Privacy';
3682 stevensc 14
 
15
const GroupEditPage = () => {
3685 stevensc 16
  const { uuid } = useParams();
17
  const { data, isLoading, mutate, refetch } = useFetch(`/group/my-groups/edit/${uuid}`);
3682 stevensc 18
 
19
  const updateData = (key, value) => {
3685 stevensc 20
    mutate({ ...data, [key]: value });
21
  };
3682 stevensc 22
 
23
  const updateAccessibility = async () => {
3685 stevensc 24
    const url = `/group/my-groups/accessibility/${uuid}`;
25
    const accessibilityData = new FormData();
26
    accessibilityData.append('accessibility', 'aa');
3682 stevensc 27
 
3685 stevensc 28
    const response = await axios.post(url, accessibilityData);
3682 stevensc 29
 
3685 stevensc 30
    const { data, success } = response.data;
31
    if (success) return data;
32
  };
3682 stevensc 33
 
34
  useEffect(() => {
35
    if (data.privacy === 'Privado' && data.accessibility !== 'aa') {
3685 stevensc 36
      updateAccessibility().then((accessibility) => updateData('accessibility', accessibility));
3682 stevensc 37
    }
3685 stevensc 38
  }, [data.privacy]);
3682 stevensc 39
 
40
  if (isLoading) {
3685 stevensc 41
    return <Spinner />;
3682 stevensc 42
  }
43
 
44
  return (
3685 stevensc 45
    <>
3682 stevensc 46
      <GroupActions {...data} refetch={refetch} edit />
47
 
48
      <Overview
49
        id={uuid}
50
        overview={data?.overview}
51
        onEdit={(newOverview) => updateData('overview', newOverview)}
52
        edit
53
      />
54
 
55
      <Type
56
        groupId={uuid}
57
        type={data?.group_type}
58
        types={data?.types}
59
        onEdit={(newType) => updateData('type', newType)}
60
        edit
61
      />
62
 
63
      <Industry
64
        groupId={uuid}
65
        industry={data?.industry}
66
        industries={data?.industries}
67
        onEdit={(newIndustry) => updateData('industry', newIndustry)}
68
        edit
69
      />
70
 
71
      <Privacy
72
        groupId={uuid}
73
        privacy={data?.privacy}
74
        privacies={data?.privacies}
75
        onEdit={(newPrivacy) => updateData('privacy', newPrivacy)}
76
        edit
77
      />
78
 
79
      <Accessibility
80
        groupId={uuid}
81
        accessibility={data?.accessibility}
82
        accessibilities={data?.accessibilities}
83
        privacy={data?.privacy}
3685 stevensc 84
        onEdit={(newAccessibility) => updateData('accessibility', newAccessibility)}
3682 stevensc 85
        edit
86
      />
87
 
88
      <Website
89
        groupId={uuid}
90
        website={data?.website}
91
        onEdit={(newWebsite) => updateData('website', newWebsite)}
92
        edit
93
      />
3685 stevensc 94
    </>
95
  );
96
};
3682 stevensc 97
 
3685 stevensc 98
export default GroupEditPage;