Proyectos de Subversion LeadersLinked - SPA

Rev

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

import { useRef, useState } from 'react';

import { useFetch, useSearch } from '@shared/hooks';

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 capsulesRoutes = useRef(CAPSULES_ROUTES);
  const capsuleCategories = useRef(CAPSULES_CATEGORIES);

  const {
    data: capsules,
    loading: capsulesLoading,
    searchTerm,
    handleSearch
  } = useSearch(capsulesRoutes.current[category].link, {
    initialParams: capsulesRoutes.current[category].params
  });

  const { data: currentCapsule, loading: currentCapsuleLoading } = useFetch(
    '/microlearning/last-capsule-in-progress'
  );

  const changeCategory = (value) => {
    setCategory(value);
  };

  return {
    capsules,
    currentCapsule,
    capsulesLoading,
    currentCapsuleLoading,
    category,
    categories: capsuleCategories.current,
    searchTerm,
    changeCategory,
    searchCapsules: handleSearch
  };
}