'use client' import { getAPIUrl } from '@services/config/config' import { swrFetcher } from '@services/utils/ts/requests' import React, { createContext, useContext, useEffect, useReducer } from 'react' import useSWR from 'swr' import { useLHSession } from '@components/Contexts/LHSessionContext' import PageLoading from '@components/Objects/Loaders/PageLoading' export const CourseContext = createContext(null) export const CourseDispatchContext = createContext(null) export function CourseProvider({ children, courseuuid }: any) { const session = useLHSession() as any; const access_token = session?.data?.tokens?.access_token; const { data: courseStructureData, error } = useSWR(`${getAPIUrl()}courses/${courseuuid}/meta`, url => swrFetcher(url, access_token) ); const initialState = { courseStructure: {}, courseOrder: {}, isSaved: true, isLoading: true }; const [state, dispatch] = useReducer(courseReducer, initialState) as any; useEffect(() => { if (courseStructureData) { dispatch({ type: 'setCourseStructure', payload: courseStructureData }); dispatch({ type: 'setIsLoaded' }); } }, [courseStructureData]); if (error) return