Proyectos de Subversion LeadersLinked - SPA

Rev

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

import React, { useEffect } from 'react'
import { useSelector } from 'react-redux'
import { useForm } from 'react-hook-form'

import { useFetchHelper } from '@hooks'

import Modal from '@app/components/UI/modal/Modal'
import TagsInput from '@app/components/UI/TagsInput'

const LanguagesModal = ({
  show = false,
  languages: userLanguages = [],
  onClose = () => null,
  onConfirm = () => null
}) => {
  const { data: languages } = useFetchHelper('languages')
  const labels = useSelector(({ intl }) => intl.labels)

  const { register, handleSubmit, setValue } = useForm()

  const onSubmit = handleSubmit((data) => onConfirm(data))

  useEffect(() => {
    register('languages')
  }, [])

  useEffect(() => {
    userLanguages.length
      ? setValue('languages', userLanguages)
      : setValue('languages', [''])
  }, [userLanguages])

  return (
    <Modal
      title={labels.languages}
      show={show}
      onClose={onClose}
      onAccept={onSubmit}
    >
      <TagsInput
        suggestions={languages}
        defaultValue={userLanguages}
        onChange={(tags) => setValue('languages', tags)}
      />
    </Modal>
  )
}

export default LanguagesModal