Proyectos de Subversion LeadersLinked - SPA

Rev

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

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