Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3642 | Rev 3646 | 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, onConfirm }) => {
  const { data: languages = [] } = useFetchHelper('languages');
  const labels = useSelector(({ intl }) => intl.labels);

  const { register, watch, handleSubmit, setValue } = useForm({
    defaultValues: {
      languages: userLanguages?.map(({ value }) => value) || []
    }
  });

  const currentValues = watch('languages');

  const handleConfirm = handleSubmit((data) => onConfirm?.(data));

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

  return (
    <Modal
      title={labels?.languages || 'Languages'}
      show={show}
      onClose={onClose}
      onAccept={handleConfirm}
    >
      <TagsInput
        label='Seleccionar idiomas'
        name='languages'
        options={languages}
        defaultValues={currentValues}
        onChange={(tags) => setValue('languages', tags)}
      />
    </Modal>
  );
};

export default LanguagesModal;