Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3571 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3520 stevensc 1
import { useEffect, useState } from 'react';
2
 
3
import { useAlert, useApi, useFetch } from '@shared/hooks';
4
import { markSlideCompleted } from '@microlearning/services';
5
 
6
export function useSlide(topicUuid, slideUuid) {
7
  const [slide, setSlide] = useState(null);
8
 
9
  const { data, loading } = useFetch(`/microlearning/slides/${slideUuid}`);
10
  const { loading: markLoading, execute } = useApi(markSlideCompleted);
11
  const { showSuccess, showError } = useAlert();
12
 
13
  const handleMarkSlideCompleted = async () => {
14
    try {
15
      const message = await execute(`/microlearning/sync/topic/${topicUuid}/slide/${slideUuid}`);
16
      setSlide({ ...slide, completed: true });
17
      showSuccess(message);
18
    } catch (error) {
19
      console.error(error);
20
      showError(error.message);
21
    }
22
  };
23
 
24
  useEffect(() => {
25
    if (data) setSlide(data);
26
  }, [data]);
27
 
28
  return { slide, loading, markLoading, handleMarkSlideCompleted };
29
}