AutorÃa | Ultima modificación | Ver Log |
import React, { createContext, useEffect, useState } from 'react';
import { useAlert, useApi } from '@shared/hooks';
import { getGroup, saveGroupAccessibility } from '@groups/services';
export const EditGroupContext = createContext();
export function EditGroupProvider({ uuid, children }) {
const [group, setGroup] = useState(null);
const { showError } = useAlert();
const { data, loading } = useApi(getGroup, {
autoFetch: true,
autoFetchArgs: [uuid],
onError: (error) => {
showError(error.message);
}
});
const { execute: updateAccessibility } = useApi(saveGroupAccessibility, {
onSuccess: (data) => {
setGroup((prev) => ({ ...prev, accessibility: data }));
},
onError: (error) => {
showError(error.message);
}
});
useEffect(() => {
if (!group) return;
if (group.privacy === 'Privado' && group.accessibility !== 'aa') {
updateAccessibility(uuid, { accessibility: 'aa' });
}
}, [group?.privacy]);
useEffect(() => {
if (data) setGroup(data);
}, [data]);
return (
<EditGroupContext.Provider value={{ group, loading, setGroup }}>
{children}
</EditGroupContext.Provider>
);
}