Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 6349 Rev 6350
Línea 6... Línea 6...
6
import { Button, Modal } from 'react-bootstrap'
6
import { Button, Modal } from 'react-bootstrap'
7
import { addNotification } from '../../../redux/notification/notification.actions'
7
import { addNotification } from '../../../redux/notification/notification.actions'
Línea 8... Línea 8...
8
 
8
 
9
import Spinner from '../../../shared/loading-spinner/Spinner'
9
import Spinner from '../../../shared/loading-spinner/Spinner'
10
import TagsInput from '../../../shared/tags-input/TagsInput'
-
 
Línea 11... Línea 10...
11
import FormErrorFeedback from '../../../shared/form-error-feedback/FormErrorFeedback'
10
import TagsInput from '../../../shared/tags-input/TagsInput'
12
 
11
 
13
const AptitudesModal = ({
12
const AptitudesModal = ({
14
  show = false,
13
  show = false,
15
  userIdEncrypted = '',
14
  userIdEncrypted = '',
16
  aptitudesOptions = [],
15
  aptitudesOptions = [],
17
  userAptitudes = [],
16
  userAptitudes = [],
18
  closeModal = () => {},
17
  closeModal = () => {},
19
  setAptitudes = () => {},
18
  setAptitudes = () => {},
20
}) => {
19
}) => {
21
  const { register, errors, handleSubmit, setValue, setError } = useForm()
20
  const { register, handleSubmit, setValue } = useForm()
Línea 22... Línea 21...
22
  const [modalLoading, setModalLoading] = useState(false)
21
  const [modalLoading, setModalLoading] = useState(false)
23
  const dispatch = useDispatch()
22
  const dispatch = useDispatch()
24
 
23
 
25
  const handleModalOpen = () => {
24
  const onClose = () => {
Línea 26... Línea 25...
26
    setValue('aptitudes', '')
25
    setValue('aptitudes', '')
Línea 32... Línea 31...
32
  }
31
  }
Línea 33... Línea 32...
33
 
32
 
34
  const onSubmitHandler = async ({ aptitudes }) => {
33
  const onSubmitHandler = async ({ aptitudes }) => {
Línea 35... Línea -...
35
    setModalLoading(true)
-
 
36
 
-
 
37
    console.log(aptitudes)
34
    setModalLoading(true)
-
 
35
 
-
 
36
    const formData = new FormData()
-
 
37
    aptitudes[0]
38
 
38
      ? formData.append('aptitudes[]', '')
-
 
39
      : aptitudes.map((aptitude) =>
Línea 39... Línea 40...
39
    const formData = new FormData()
40
          formData.append('aptitudes[]', aptitude.value)
40
    aptitudes.map((aptitude) => formData.append('aptitudes[]', aptitude.value))
41
        )
41
 
42
 
42
    axios
43
    axios
43
      .post(`/profile/my-profiles/aptitude/${userIdEncrypted}`, formData)
44
      .post(`/profile/my-profiles/aptitude/${userIdEncrypted}`, formData)
44
      .then(({ data: response }) => {
45
      .then(({ data: response }) => {
45
        const { data, success } = response
-
 
46
        if (!success) {
-
 
47
          const resError = data
-
 
48
          typeof resError === 'string'
-
 
49
            ? Object.entries(resError).map(([key, value]) => {
-
 
50
                setError('aptitudes', {
-
 
51
                  type: 'manual',
-
 
52
                  message: Array.isArray(value) ? value[0] : value,
46
        const { data, success } = response
53
                })
47
        if (!success) {
54
              })
48
          const errorMessage = data.aptitudes[0]
Línea 55... Línea 49...
55
            : dispatch(addNotification({ style: 'danger', msg: resError }))
49
          dispatch(addNotification({ style: 'danger', msg: errorMessage }))
56
          return
50
          return
57
        }
51
        }
58
 
52
 
Línea 59... Línea 53...
59
        setAptitudes(aptitudes)
53
        setAptitudes(aptitudes)
60
        dispatch(
54
        dispatch(
61
          addNotification({ style: 'success', msg: 'Registro actualizado' })
55
          addNotification({ style: 'success', msg: 'Registro actualizado' })
62
        )
56
        )
Línea 63... Línea 57...
63
 
57
 
64
        handleModalOpen()
58
        onClose()
-
 
59
      })
65
      })
60
    setModalLoading(false)
Línea 66... Línea 61...
66
    setModalLoading(false)
61
  }
67
  }
62
 
68
 
63
  useEffect(() => {
69
  useEffect(() => {
64
    register('aptitudes')
70
    register('aptitudes')
65
    setValue('aptitudes', userAptitudes)
71
  }, [])
66
  }, [])
72
 
67
 
Línea 81... Línea 76...
81
            <TagsInput
76
            <TagsInput
82
              suggestions={aptitudesOptions}
77
              suggestions={aptitudesOptions}
83
              settedTags={userAptitudes}
78
              settedTags={userAptitudes}
84
              onChange={handleTagsChange}
79
              onChange={handleTagsChange}
85
            />
80
            />
86
            {errors.aptitudes && (
-
 
87
              <FormErrorFeedback>{errors.aptitudes.message}</FormErrorFeedback>
-
 
88
            )}
-
 
89
          </div>
81
          </div>
90
        </Modal.Body>
82
        </Modal.Body>
91
        <Modal.Footer>
83
        <Modal.Footer>
92
          <Button size="sm" type="submit">
84
          <Button size="sm" type="submit">
93
            Enviar
85
            Enviar
94
          </Button>
86
          </Button>
95
          <Button size="sm" variant="danger" onClick={handleModalOpen}>
87
          <Button size="sm" variant="danger" onClick={onClose}>
96
            Cancelar
88
            Cancelar
97
          </Button>
89
          </Button>
98
        </Modal.Footer>
90
        </Modal.Footer>
99
      </form>
91
      </form>
100
      {modalLoading && <Spinner />}
92
      {modalLoading && <Spinner />}