Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2780 | Rev 3640 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1849 stevensc 1
import React, { useEffect } from 'react'
2
import { useSelector } from 'react-redux'
3
import { useForm } from 'react-hook-form'
4
 
2780 stevensc 5
import { useFetchHelper } from '@hooks'
1849 stevensc 6
 
7
import Modal from '@app/components/UI/modal/Modal'
8
import TagsInput from '@app/components/UI/TagsInput'
9
 
10
const LanguagesModal = ({
11
  show = false,
12
  languages: userLanguages = [],
13
  onClose = () => null,
14
  onConfirm = () => null
15
}) => {
16
  const { data: languages } = useFetchHelper('languages')
17
  const labels = useSelector(({ intl }) => intl.labels)
18
 
19
  const { register, handleSubmit, setValue } = useForm()
20
 
1852 stevensc 21
  const onSubmit = handleSubmit((data) => onConfirm(data))
1849 stevensc 22
 
23
  useEffect(() => {
24
    register('languages')
25
  }, [])
26
 
27
  useEffect(() => {
28
    userLanguages.length
29
      ? setValue('languages', userLanguages)
30
      : setValue('languages', [''])
31
  }, [userLanguages])
32
 
33
  return (
34
    <Modal
35
      title={labels.languages}
36
      show={show}
37
      onClose={onClose}
38
      onAccept={onSubmit}
39
    >
40
      <TagsInput
41
        suggestions={languages}
3047 stevensc 42
        defaultValue={userLanguages}
1849 stevensc 43
        onChange={(tags) => setValue('languages', tags)}
44
      />
45
    </Modal>
46
  )
47
}
48
 
49
export default LanguagesModal