Rev 3520 | Rev 3575 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import { useEffect, useState } from 'react';
import { useAlert, useApi, useFetch } from '@shared/hooks';
import { markSlideCompleted } from '@microlearning/services';
export function useSlide(slideUuid) {
const [slide, setSlide] = useState(null);
const { data, loading } = useFetch(`/microlearning/slides/${slideUuid}`);
const { loading: markLoading, execute } = useApi(markSlideCompleted);
const { showSuccess, showError } = useAlert();
const handleMarkSlideCompleted = async () => {
try {
const message = await execute(`/microlearning/sync/slide/${slideUuid}`);
setSlide({ ...slide, completed: true });
showSuccess(message);
} catch (error) {
console.error(error);
showError(error.message);
}
};
useEffect(() => {
if (data) setSlide(data);
}, [data]);
return { slide, loading, markLoading, handleMarkSlideCompleted };
}