AutorÃa | Ultima modificación | Ver Log |
import React, { useMemo } from 'react';
import { useAlert, useApi } from '@shared/hooks';
import { parseHelperToSelect } from '@shared/utils';
import { saveGroupPrivacy } from '@groups/services';
import { Form, FormButton, FormSelect } from '@shared/components';
export function PrivacyForm({ privacies, privacy, uuid, onSubmit }) {
const privaciesOptions = useMemo(() => parseHelperToSelect(privacies), [privacies]);
const privacyId = useMemo(
() => privaciesOptions.find((value) => value.label === privacy)?.value || '',
[privaciesOptions, privacy]
);
const { showError, showSuccess } = useAlert();
const { execute } = useApi(saveGroupPrivacy, {
onSuccess: (data) => {
onSubmit(data);
showSuccess('Privacidad actualizada correctamente');
},
onError: (error) => {
showError(error.message);
}
});
const handleSubmit = (data) => {
execute(uuid, data);
};
return (
<Form onSubmit={handleSubmit} defaultValues={{ privacy: privacyId }}>
<FormSelect
name='privacy'
placeholder='Privacidad'
rules={{ required: 'Por favor eliga una privacidad' }}
options={privaciesOptions}
/>
<FormButton type='submit'>Guardar</FormButton>
</Form>
);
}