Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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