Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
6894 stevensc 1
import React, { useState, useEffect } from 'react'
6903 stevensc 2
import { axios, camalize } from '../../utils'
6894 stevensc 3
import { useParams } from 'react-router-dom'
4
import { useDispatch } from 'react-redux'
5
import { getBackendVars } from '../../services/backendVars'
6
import { addNotification } from '../../redux/notification/notification.actions'
7
 
8
import Overview from '../../components/overview/Overview'
9
import GroupActions from '../../components/group/GroupActions'
10
 
6902 stevensc 11
import Type from '../../components/group/type/Type'
6899 stevensc 12
import Website from '../../components/group/website/Website'
13
import Privacy from '../../components/group/privacy/Privacy'
14
import Industry from '../../components/group/industry/Industry'
6903 stevensc 15
import Accessibility from '../../components/group/accessibility/Accessibility'
6899 stevensc 16
 
6894 stevensc 17
import './styles/linkedin.scss'
6905 stevensc 18
import '../../styles/profile/profile.scss'
6894 stevensc 19
 
20
const Edit = () => {
21
  const [backendVars, setBackendVars] = useState({})
6903 stevensc 22
  const { uuid } = useParams()
6894 stevensc 23
  const dispatch = useDispatch()
24
 
6899 stevensc 25
  const changePrivacy = (privacy) => {
26
    setBackendVars((prevBackendVars) => {
27
      return {
28
        ...prevBackendVars,
29
        privacy,
30
      }
31
    })
32
  }
33
 
6903 stevensc 34
  const changeAccessibility = (accessibility) => {
35
    setBackendVars((prevBackendVars) => {
36
      return {
37
        ...prevBackendVars,
38
        accessibility,
39
      }
40
    })
41
  }
42
 
6894 stevensc 43
  useEffect(() => {
6897 stevensc 44
    getBackendVars(`/group/my-groups/edit/${uuid}`)
6894 stevensc 45
      .then((vars) => {
46
        const actions = {}
47
 
48
        Object.entries(vars).forEach(([key, value]) => {
49
          const camelCaseKey = camalize(key)
50
          actions[camelCaseKey] = value
51
        })
52
 
53
        setBackendVars(actions)
54
        console.log(actions)
55
      })
56
      .catch((err) => {
57
        dispatch(addNotification({ style: 'danger', msg: err }))
58
        console.log(`Error: ${err}`)
59
        throw new Error(err)
60
      })
61
  }, [])
62
 
6903 stevensc 63
  useEffect(() => {
64
    if (backendVars.privacy === 'Privado') {
65
      const accessibilityData = new FormData()
66
      accessibilityData.append('accessibility', 'aa')
67
 
68
      axios
69
        .post(`/group/my-groups/accessibility/${uuid}`, accessibilityData)
70
        .then((response) => {
71
          const { data, success } = response.data
72
          if (success) changeAccessibility(data)
73
        })
74
    }
75
  }, [backendVars?.privacy])
76
 
6894 stevensc 77
  return (
78
    <main className="w-100">
79
      <div className="container">
80
        <div className="main d-flex flex-column" style={{ gap: '1rem' }}>
6902 stevensc 81
          <GroupActions
82
            {...backendVars}
83
            coverSize={backendVars?.imageSizeCover}
84
            imageSize={backendVars?.imageSizeProfile}
85
          />
6906 stevensc 86
          <Overview id={uuid} overview={backendVars?.overview} isEdit />
6902 stevensc 87
          <Type
6899 stevensc 88
            groupId={uuid}
6902 stevensc 89
            type={backendVars?.groupType}
6905 stevensc 90
            types={backendVars?.types}
6902 stevensc 91
          />
6894 stevensc 92
          <Industry
6899 stevensc 93
            groupId={uuid}
94
            industry={backendVars?.industry}
95
            industries={backendVars?.industries}
6894 stevensc 96
          />
97
          <Privacy
6899 stevensc 98
            groupId={uuid}
99
            privacy={backendVars?.privacy}
100
            privacies={backendVars?.privacies}
101
            onChange={changePrivacy}
6894 stevensc 102
          />
6903 stevensc 103
          <Accessibility
6899 stevensc 104
            groupId={uuid}
105
            accessibilities={backendVars?.accessibilities}
6903 stevensc 106
            accessibility={backendVars?.accessibility}
107
            privacy={backendVars?.privacy}
108
            onChange={changeAccessibility}
109
          />
6899 stevensc 110
          <Website groupId={uuid} website={backendVars?.website} />
6894 stevensc 111
        </div>
112
      </div>
113
    </main>
114
  )
115
}
116
 
117
export default Edit