Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6753 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 6753 Rev 6807
Línea 1... Línea -...
1
/* eslint-disable react/prop-types */
-
 
2
import React, { useEffect, useState } from 'react'
1
import React, { useEffect, useState } from 'react'
3
import { axios } from '../../utils'
2
import { axios } from '../../utils'
4
import { useForm } from 'react-hook-form'
3
import { useForm } from 'react-hook-form'
5
import { useDispatch, useSelector } from 'react-redux'
4
import { useDispatch, useSelector } from 'react-redux'
6
import { Button, Modal } from 'react-bootstrap'
5
import { Button, Modal } from 'react-bootstrap'
7
import { addNotification } from '../../redux/notification/notification.actions'
6
import { addNotification } from '../../redux/notification/notification.actions'
Línea 8... Línea 7...
8
 
7
 
9
import Spinner from '../../../shared/loading-spinner/Spinner'
8
import Spinner from '../../../shared/loading-spinner/Spinner'
-
 
9
import TagsInput from '../../../shared/tags-input/TagsInput'
Línea 10... Línea 10...
10
import TagsInput from '../../../shared/tags-input/TagsInput'
10
import useFetchHelper from '../../hooks/useFetchHelper'
11
 
11
 
12
const AptitudesModal = ({
12
const AptitudesModal = ({
13
  show = false,
-
 
14
  userIdEncrypted = '',
13
  show = false,
15
  aptitudesOptions = [],
14
  userId = '',
16
  userAptitudes = [],
15
  userAptitudes = [],
17
  closeModal = () => {},
16
  onClose = () => {},
18
  setAptitudes = () => {},
17
  onComplete = () => {},
-
 
18
}) => {
19
}) => {
19
  const [modalLoading, setModalLoading] = useState(false)
20
  const [modalLoading, setModalLoading] = useState(false)
20
  const { data: aptitudes } = useFetchHelper('aptitudes')
Línea 21... Línea 21...
21
  const labels = useSelector(({ intl }) => intl.labels)
21
  const labels = useSelector(({ intl }) => intl.labels)
Línea 32... Línea 32...
32
 
32
 
33
    const formData = new FormData()
33
    const formData = new FormData()
Línea 34... Línea 34...
34
    aptitudes.map((aptitude) => formData.append('aptitudes[]', aptitude.value))
34
    aptitudes.map((aptitude) => formData.append('aptitudes[]', aptitude.value))
35
 
35
 
36
    axios
36
    axios
37
      .post(`/profile/my-profiles/aptitude/${userIdEncrypted}`, formData)
37
      .post(`/profile/my-profiles/aptitude/${userId}`, formData)
38
      .then(({ data: response }) => {
38
      .then(({ data: response }) => {
39
        const { data, success } = response
39
        const { data, success } = response
40
        if (!success) {
40
        if (!success) {
41
          const errorMessage = data.aptitudes[0]
41
          const errorMessage = data.aptitudes[0]
42
          dispatch(addNotification({ style: 'danger', msg: errorMessage }))
42
          dispatch(addNotification({ style: 'danger', msg: errorMessage }))
Línea 43... Línea 43...
43
          return
43
          return
44
        }
44
        }
45
 
45
 
46
        setAptitudes(aptitudes)
46
        onComplete(aptitudes)
Línea 47... Línea 47...
47
        dispatch(
47
        dispatch(
48
          addNotification({ style: 'success', msg: 'Registro actualizado' })
48
          addNotification({ style: 'success', msg: 'Registro actualizado' })
49
        )
49
        )
50
 
50
 
51
        closeModal()
51
        onClose()
52
      })
52
      })
Línea 64... Línea 64...
64
  useEffect(() => {
64
  useEffect(() => {
65
    show ? setValue('aptitudes', userAptitudes) : setValue('aptitudes', [''])
65
    show ? setValue('aptitudes', userAptitudes) : setValue('aptitudes', [''])
66
  }, [show])
66
  }, [show])
Línea 67... Línea 67...
67
 
67
 
68
  return (
68
  return (
69
    <Modal show={show} onHide={closeModal}>
69
    <Modal show={show} onHide={onClose}>
70
      <Modal.Header closeButton>
70
      <Modal.Header closeButton>
71
        <Modal.Title>{labels.aptitudes}</Modal.Title>
71
        <Modal.Title>{labels.aptitudes}</Modal.Title>
72
      </Modal.Header>
72
      </Modal.Header>
73
      <form onSubmit={handleSubmit(onSubmitHandler)}>
73
      <form onSubmit={handleSubmit(onSubmitHandler)}>
74
        <Modal.Body>
74
        <Modal.Body>
75
          <div className="form-group">
75
          <div className="form-group">
76
            <TagsInput
76
            <TagsInput
77
              suggestions={aptitudesOptions}
77
              suggestions={aptitudes}
78
              settedTags={userAptitudes}
78
              settedTags={userAptitudes}
79
              onChange={handleTagsChange}
79
              onChange={handleTagsChange}
80
            />
80
            />
81
          </div>
81
          </div>
82
        </Modal.Body>
82
        </Modal.Body>
83
        <Modal.Footer>
83
        <Modal.Footer>
84
          <Button size="sm" type="submit">
84
          <Button size="sm" type="submit">
85
            {labels.accept}
85
            {labels.accept}
86
          </Button>
86
          </Button>
87
          <Button size="sm" variant="danger" onClick={closeModal}>
87
          <Button size="sm" variant="danger" onClick={onClose}>
88
            {labels.cancel}
88
            {labels.cancel}
89
          </Button>
89
          </Button>
90
        </Modal.Footer>
90
        </Modal.Footer>
91
      </form>
91
      </form>