Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3505 | Rev 3511 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3481 stevensc 1
import { useEffect, useState } from 'react';
2
 
3510 stevensc 3
import { useAlert, useFetch } from '@shared/hooks';
4
import { api } from '@shared/libs';
3481 stevensc 5
 
6
const DEFAULT_STATE = {
7
  uuid: '',
8
  name: '',
9
  description: '',
10
  image: '',
11
  link_comments: '',
12
  link_comment_add: '',
13
  link_slides: '',
14
  total_comments: '',
15
  total_rating: '0',
16
  progress: 0,
17
  completed: 0,
18
  total_slides: null,
19
  link_first_slide: '',
20
  type_first_slide: '',
21
  order: null,
22
  added_on: '',
23
  updated_on: ''
24
};
25
 
26
export function useCapsule(uuid) {
27
  const [capsule, setCapsule] = useState(DEFAULT_STATE);
28
 
3510 stevensc 29
  const { showSuccess, showError } = useAlert();
30
 
3505 stevensc 31
  const { data, loading, refetch } = useFetch(`/microlearning/get-capsule/${uuid}`);
3510 stevensc 32
  const { data: comments, loading: loadingComments } = useFetch(capsule.link_comments);
3481 stevensc 33
 
3510 stevensc 34
  const addComment = async ({ comment, rating }) => {
35
    try {
36
      const { message } = await api.post(capsule.link_comment_add, { comment, rating });
37
      showSuccess(message);
38
    } catch (error) {
39
      showError(error.message);
40
    }
41
  };
42
 
3481 stevensc 43
  useEffect(() => {
44
    if (data) setCapsule(data);
45
  }, [data]);
46
 
3510 stevensc 47
  return { capsule, comments, loadingComments, loading, refetch, addComment };
3481 stevensc 48
}