Proyectos de Subversion LeadersLinked - SPA

Rev

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

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