Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3084 | Rev 3086 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3084 Rev 3085
Línea 18... Línea 18...
18
  const [loading, setLoading] = useState(false)
18
  const [loading, setLoading] = useState(false)
19
  const { uuid } = useParams()
19
  const { uuid } = useParams()
20
  const dispatch = useDispatch()
20
  const dispatch = useDispatch()
Línea 21... Línea 21...
21
 
21
 
22
  const { data: job, isLoading, mutate } = useFetch(`/job/view/${uuid}`)
-
 
23
 
22
  const { data: job, isLoading, mutate } = useFetch(`/job/view/${uuid}`)
Línea 24... Línea 23...
24
  const isJobApplied = job?.job_apply_operation === 'remove-apply'
23
  const isJobApplied = job?.job_apply_operation === 'remove-apply'
Línea 25... Línea 24...
25
 
24
 
-
 
25
  const toggleApplyModal = () => setShowApplyModal(!showApplyModal)
-
 
26
 
26
  const toggleApplyModal = () => setShowApplyModal(!showApplyModal)
27
  const toggleApplication = () => {
-
 
28
    mutate({
27
 
29
      ...job,
Línea 28... Línea 30...
28
  const handleApply = () => {
30
      job_apply_operation: isJobApplied ? 'apply' : 'remove-apply'
29
    mutate({ ...job, job_apply_operation: 'apply' })
31
    })
30
  }
32
  }
31
 
33
 
32
  const removeApply = async () => {
34
  const removeApply = async () => {
33
    setLoading(true)
35
    setLoading(true)
34
    try {
36
    try {
35
      const response = await axios.post(`/job/remove-apply-job/${job}`)
37
      const response = await axios.post(`/job/remove-apply-job/${job}`)
-
 
38
      const { data, success } = response.data
-
 
39
      if (!success) throw new Error('Error al eliminar la aplicación')
-
 
40
      dispatch(addNotification({ styled: 'success', msg: data }))
-
 
41
      toggleApplication()
-
 
42
    } catch (error) {
-
 
43
      dispatch(addNotification({ styled: 'danger', msg: error.message }))
-
 
44
    } finally {
-
 
45
      setLoading(false)
-
 
46
    }
-
 
47
  }
-
 
48
 
-
 
49
  const apply = async (jobApply) => {
-
 
50
    setLoading(true)
-
 
51
 
-
 
52
    try {
-
 
53
      const url = `/job/apply-job/${job.job_uuid}`
-
 
54
      const formData = new FormData()
-
 
55
      Object.entries(jobApply).map(([key, value]) =>
-
 
56
        formData.append(key, value)
-
 
57
      )
-
 
58
 
-
 
59
      const response = await axios.post(url, formData)
-
 
60
      const { data, success } = response.data
-
 
61
 
36
      const { data, success } = response.data
62
      if (!success) throw new Error('Error al aplicar al trabajo')
37
      if (!success) throw new Error('Error al eliminar la aplicación')
63
 
38
      dispatch(addNotification({ styled: 'success', msg: data }))
64
      dispatch(addNotification({ style: 'success', msg: data }))
39
      handleApply()
65
      toggleApplication()
40
    } catch (error) {
66
    } catch (error) {
Línea 83... Línea 109...
83
          >
109
          >
84
            {job?.job_apply_operation === 'remove-apply'
110
            {job?.job_apply_operation === 'remove-apply'
85
              ? 'Quitar aplicación'
111
              ? 'Quitar aplicación'
86
              : 'Aplicar'}
112
              : 'Aplicar'}
87
          </button>
113
          </button>
-
 
114
 
88
          <ClientInfo
115
          <ClientInfo
89
            companySize={job?.company_size}
116
            companySize={job?.company_size}
90
            companyAddress={job?.company_address}
117
            companyAddress={job?.company_address}
91
            companyWebsite={job?.company_website}
118
            companyWebsite={job?.company_website}
92
            companyIndustry={job?.company_industry}
119
            companyIndustry={job?.company_industry}
Línea 94... Línea 121...
94
          />
121
          />
95
        </Grid>
122
        </Grid>
96
      </Grid>
123
      </Grid>
Línea 97... Línea 124...
97
 
124
 
98
      <ApplyModal
-
 
99
        jobId={job?.job_uuid}
125
      <ApplyModal
100
        show={showApplyModal}
126
        show={showApplyModal}
101
        userProfiles={job?.user_profiles}
127
        profiles={job?.user_profiles}
102
        onHide={toggleApplyModal}
128
        onConfirm={apply}
103
        onApplied={handleApply}
129
        onClose={toggleApplyModal}
104
      />
130
      />
105
    </>
131
    </>
106
  )
132
  )