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 5... Línea 5...
5
import { Button, Modal } from 'react-bootstrap'
5
import { Button, Modal } from 'react-bootstrap'
6
import { addNotification } from '../../../redux/notification/notification.actions'
6
import { addNotification } from '../../../redux/notification/notification.actions'
Línea 7... Línea 7...
7
 
7
 
8
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 9... Línea 10...
9
import TagsInput from '../../../shared/tags-input/TagsInput'
10
import useFetchHelper from '../../hooks/useFetchHelper'
10
 
11
 
11
const LanguagesModal = ({
12
const LanguagesModal = ({
12
  show = false,
-
 
13
  userIdEncrypted = '',
13
  show = false,
14
  languagesOptions = [],
14
  userId = '',
15
  userLanguages = [],
15
  userLanguages = [],
16
  closeModal = () => {},
16
  onClose = () => null,
17
  setLanguages = () => {},
17
  onComplete = () => null,
-
 
18
}) => {
18
}) => {
19
  const [modalLoading, setModalLoading] = useState(false)
19
  const [modalLoading, setModalLoading] = useState(false)
20
  const { data: languages } = useFetchHelper('languages')
Línea 20... Línea 21...
20
  const labels = useSelector(({ intl }) => intl.labels)
21
  const labels = useSelector(({ intl }) => intl.labels)
Línea 30... Línea 31...
30
    setModalLoading(true)
31
    setModalLoading(true)
31
    const formData = new FormData()
32
    const formData = new FormData()
32
    languages.map((language) => formData.append('languages[]', language.value))
33
    languages.map((language) => formData.append('languages[]', language.value))
Línea 33... Línea 34...
33
 
34
 
34
    axios
35
    axios
35
      .post(`/profile/my-profiles/language/${userIdEncrypted}`, formData)
36
      .post(`/profile/my-profiles/language/${userId}`, formData)
36
      .then(({ data: response }) => {
37
      .then(({ data: response }) => {
Línea 37... Línea 38...
37
        const { success, data } = response
38
        const { success, data } = response
38
 
39
 
39
        if (!success) {
40
        if (!success) {
40
          const errorMessage = data.languages[0]
41
          const errorMessage = data.languages[0]
41
          dispatch(addNotification({ style: 'danger', msg: errorMessage }))
42
          dispatch(addNotification({ style: 'danger', msg: errorMessage }))
Línea 42... Línea 43...
42
          return
43
          return
43
        }
44
        }
44
 
45
 
45
        setLanguages(languages)
46
        onComplete(languages)
46
        dispatch(
47
        dispatch(
47
          addNotification({ style: 'success', msg: 'Registro actualizado' })
48
          addNotification({ style: 'success', msg: 'Registro actualizado' })
48
        )
49
        )
49
        closeModal()
50
        onClose()
50
      })
51
      })
51
      .catch((error) => {
52
      .catch((error) => {
Línea 62... Línea 63...
62
  useEffect(() => {
63
  useEffect(() => {
63
    show ? setValue('languages', userLanguages) : setValue('languages', [''])
64
    show ? setValue('languages', userLanguages) : setValue('languages', [''])
64
  }, [show])
65
  }, [show])
Línea 65... Línea 66...
65
 
66
 
66
  return (
67
  return (
67
    <Modal show={show} onHide={closeModal}>
68
    <Modal show={show} onHide={onClose}>
68
      <Modal.Header closeButton>
69
      <Modal.Header closeButton>
69
        <Modal.Title>{labels.languages}</Modal.Title>
70
        <Modal.Title>{labels.languages}</Modal.Title>
70
      </Modal.Header>
71
      </Modal.Header>
71
      <form onSubmit={handleSubmit(onSubmitHandler)}>
72
      <form onSubmit={handleSubmit(onSubmitHandler)}>
72
        <Modal.Body>
73
        <Modal.Body>
73
          <div className="form-group">
74
          <div className="form-group">
74
            <TagsInput
75
            <TagsInput
75
              suggestions={languagesOptions}
76
              suggestions={languages}
76
              settedTags={userLanguages}
77
              settedTags={userLanguages}
77
              onChange={handleTagsChange}
78
              onChange={handleTagsChange}
78
            />
79
            />
79
          </div>
80
          </div>
80
        </Modal.Body>
81
        </Modal.Body>
81
        <Modal.Footer>
82
        <Modal.Footer>
82
          <Button size="sm" type="submit">
83
          <Button size="sm" type="submit">
83
            {labels.accept}
84
            {labels.accept}
84
          </Button>
85
          </Button>
85
          <Button size="sm" variant="danger" onClick={closeModal}>
86
          <Button size="sm" variant="danger" onClick={onClose}>
86
            {labels.cancel}
87
            {labels.cancel}
87
          </Button>
88
          </Button>
88
        </Modal.Footer>
89
        </Modal.Footer>
89
      </form>
90
      </form>