Rev 3658 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
import { useEffect, useRef, useState } from 'react';import { useApi } from '@shared/hooks';import { useDebouncedSearchParam } from '@shared/hooks/useDebouncedSearchParam';import { getCapsules, getLastCapsuleInProgress } from '@microlearning/services';const CAPSULES_ROUTES = {pending: {link: '/microlearning/capsules-pending',params: {order_field: 'added_on',order_direction: 'desc'}},progress: {link: '/microlearning/capsules-in-progress',params: {}},completed: {link: '/microlearning/capsules-completed',params: {order_field: 'last_access_on',order_direction: 'desc'}}};const CAPSULES_CATEGORIES = [{label: 'Pendiente',value: 'pending'},{label: 'En curso',value: 'progress'},{label: 'Finalizado',value: 'completed'}];export function useMicrolearning() {const [category, setCategory] = useState(CAPSULES_CATEGORIES[0].value);const {inputValue: searchTerm,setInputValue: setSearchTerm,debouncedValue: debouncedSearchTerm} = useDebouncedSearchParam('search', 500);const capsulesRoutes = useRef(CAPSULES_ROUTES);const capsuleCategories = useRef(CAPSULES_CATEGORIES);const {data: capsules,loading: capsulesLoading,execute: fetchCapsules} = useApi(getCapsules, {autoFetch: true});const { data: currentCapsule, loading: currentCapsuleLoading } = useApi(getLastCapsuleInProgress,{ autoFetch: true });useEffect(() => {fetchCapsules(capsulesRoutes.current[category].link, {params: capsulesRoutes.current[category].params});}, [category, debouncedSearchTerm]);return {category,capsules: capsules || [],currentCapsule,capsulesLoading,currentCapsuleLoading,categories: capsuleCategories.current,changeCategory: setCategory,searchCapsules: setSearchTerm,searchTerm};}