AutorÃa | Ultima modificación | Ver Log |
import React, { useMemo } from 'react';
import { useApi, useAlert } from '@shared/hooks';
import { saveGroupAccessibility } from '@groups/services';
import { parseHelperToSelect } from '@shared/utils';
import { Form, FormButton, FormSelect } from '@shared/components';
export function AccessibilityForm({
uuid = '',
privacy,
accessibility,
accessibilities = {},
onSubmit = () => {}
}) {
const accessibilitiesOptions = useMemo(() => {
const options = parseHelperToSelect(accessibilities);
return options.filter((acc) => (privacy === 'Privado' ? acc.value !== 'aj' : true));
}, [accessibilities, privacy]);
const currentAccessibility = useMemo(
() => accessibilitiesOptions.find((acc) => acc.label === accessibility)?.value || '',
[accessibilitiesOptions, accessibility]
);
const { showSuccess, showError } = useAlert();
const { execute } = useApi(saveGroupAccessibility, {
onSuccess: (data) => {
showSuccess('Accesibilidad actualizada correctamente');
onSubmit(data);
},
onError: (error) => {
showError(error.message);
}
});
const handleSubmit = (data) => {
execute(uuid, data);
};
return (
<Form onSubmit={handleSubmit} defaultValues={{ accessibility: currentAccessibility }}>
<FormSelect
name='accessibility'
placeholder='Accesibilidad'
rules={{ required: 'Por favor eliga una accesibilidad' }}
options={accessibilitiesOptions}
/>
<FormButton type='submit'>Guardar</FormButton>
</Form>
);
}