Proyectos de Subversion LeadersLinked - SPA

Rev

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

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