Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3642 | Rev 3646 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3642 Rev 3644
Línea 1... Línea 1...
1
import React, { useEffect, useMemo } from 'react';
1
import React, { useEffect } from 'react';
2
import { useSelector } from 'react-redux';
2
import { useSelector } from 'react-redux';
3
import { useForm } from 'react-hook-form';
3
import { useForm } from 'react-hook-form';
Línea 4... Línea 4...
4
 
4
 
Línea 5... Línea 5...
5
import { useFetchHelper } from '@hooks';
5
import { useFetchHelper } from '@hooks';
6
 
6
 
Línea 7... Línea -...
7
import Modal from '@app/components/UI/modal/Modal';
-
 
8
import TagsInput from '@app/components/UI/TagsInput';
-
 
9
 
7
import Modal from '@app/components/UI/modal/Modal';
10
const LanguagesModal = ({
-
 
11
  show = false,
-
 
12
  languages: userLanguages = [],
-
 
13
  onClose = () => null,
8
import TagsInput from '@app/components/UI/TagsInput';
14
  onConfirm = () => null
9
 
Línea 15... Línea 10...
15
}) => {
10
const LanguagesModal = ({ show = false, languages: userLanguages = [], onClose, onConfirm }) => {
-
 
11
  const { data: languages = [] } = useFetchHelper('languages');
-
 
12
  const labels = useSelector(({ intl }) => intl.labels);
-
 
13
 
-
 
14
  const { register, watch, handleSubmit, setValue } = useForm({
Línea 16... Línea 15...
16
  const { data: languages } = useFetchHelper('languages');
15
    defaultValues: {
Línea 17... Línea 16...
17
  const labels = useSelector(({ intl }) => intl.labels);
16
      languages: userLanguages?.map(({ value }) => value) || []
18
 
-
 
19
  const { register, handleSubmit, setValue } = useForm();
-
 
20
 
-
 
Línea 21... Línea 17...
21
  const onSubmit = handleSubmit((data) => onConfirm(data));
17
    }
22
 
18
  });
23
  const currentValue = useMemo(() => {
-
 
24
    if (!userLanguages.length) return [''];
-
 
25
    return userLanguages.map(({ value }) => value);
-
 
26
  }, [userLanguages]);
-
 
27
 
19
 
Línea 28... Línea 20...
28
  useEffect(() => {
20
  const currentValues = watch('languages');
-
 
21
 
29
    register('languages');
22
  const handleConfirm = handleSubmit((data) => onConfirm?.(data));
-
 
23
 
-
 
24
  useEffect(() => {
-
 
25
    register('languages');
-
 
26
  }, [register]);
30
  }, []);
27
 
-
 
28
  return (
-
 
29
    <Modal
31
 
30
      title={labels?.languages || 'Languages'}
32
  useEffect(() => {
31
      show={show}
33
    if (show) setValue('languages', currentValue);
32
      onClose={onClose}
34
  }, [show]);
33
      onAccept={handleConfirm}
35
 
34
    >
36
  return (
35
      <TagsInput
37
    <Modal title={labels.languages} show={show} onClose={onClose} onAccept={onSubmit}>
36
        label='Seleccionar idiomas'