Proyectos de Subversion LeadersLinked - SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3736 stevensc 1
import React, { useMemo } from 'react';
2
 
3
import { useAlert, useApi } from '@shared/hooks';
4
import { parseHelperToSelect } from '@shared/utils';
5
import { saveGroupPrivacy } from '@groups/services';
6
 
7
import { Form, FormButton, FormSelect } from '@shared/components';
8
 
9
export function PrivacyForm({ privacies, privacy, uuid, onSubmit }) {
10
  const privaciesOptions = useMemo(() => parseHelperToSelect(privacies), [privacies]);
11
  const privacyId = useMemo(
12
    () => privaciesOptions.find((value) => value.label === privacy)?.value || '',
13
    [privaciesOptions, privacy]
14
  );
15
 
16
  const { showError, showSuccess } = useAlert();
17
 
18
  const { execute } = useApi(saveGroupPrivacy, {
19
    onSuccess: (data) => {
20
      onSubmit(data);
21
      showSuccess('Privacidad actualizada correctamente');
22
    },
23
    onError: (error) => {
24
      showError(error.message);
25
    }
26
  });
27
 
28
  const handleSubmit = (data) => {
29
    execute(uuid, data);
30
  };
31
 
32
  return (
33
    <Form onSubmit={handleSubmit} defaultValues={{ privacy: privacyId }}>
34
      <FormSelect
35
        name='privacy'
36
        placeholder='Privacidad'
37
        rules={{ required: 'Por favor eliga una privacidad' }}
38
        options={privaciesOptions}
39
      />
40
      <FormButton type='submit'>Guardar</FormButton>
41
    </Form>
42
  );
43
}