diff --git a/front/app/_orgs/[orgslug]/course/[courseid]/page.tsx b/front/app/_orgs/[orgslug]/course/[courseid]/page.tsx index a4031e94..a48256f6 100644 --- a/front/app/_orgs/[orgslug]/course/[courseid]/page.tsx +++ b/front/app/_orgs/[orgslug]/course/[courseid]/page.tsx @@ -2,67 +2,55 @@ import { EyeOpenIcon, Pencil2Icon } from "@radix-ui/react-icons"; import { closeActivity, createActivity } from "@services/courses/activity"; import Link from "next/link"; -import { useRouter } from "next/navigation"; import React from "react"; import styled from "styled-components"; -import Layout from "../../../../../components/UI/Layout"; import { getAPIUrl, getBackendUrl } from "../../../../../services/config"; -import { getCourse, getCourseMetadata } from "../../../../../services/courses/courses"; +import useSWR, { mutate } from "swr"; +import { swrFetcher } from "@services/utils/requests"; const CourseIdPage = (params: any) => { - const router = useRouter(); const courseid = params.params.courseid; const orgslug = params.params.orgslug; - - const [isLoading, setIsLoading] = React.useState(true); - const [courseInfo, setCourseInfo] = React.useState({}) as any; - - async function fetchCourseInfo() { - const course = await getCourseMetadata("course_" + courseid); - setCourseInfo(course); - setIsLoading(false); - } + const { data: course, error: error } = useSWR(`${getAPIUrl()}courses/meta/course_${courseid}`, swrFetcher); async function startActivity() { - const activity = await createActivity("course_" + courseid); - fetchCourseInfo(); + // Create activity + await createActivity("course_" + courseid); + + // Mutate course + mutate(`${getAPIUrl()}courses/meta/${courseid}`); } async function quitActivity() { - let activity_id = courseInfo.activity.activity_id; - let org_id = courseInfo.activity.org_id; - console.log("activity", activity_id); + // Get activity id and org id + let activity_id = course.activity.activity_id; + let org_id = course.activity.org_id; + // Close activity let activity = await closeActivity(activity_id, org_id); console.log(activity); - fetchCourseInfo(); + // Mutate course + mutate(`${getAPIUrl()}courses/meta/${courseid}`); } - React.useEffect(() => { - if (courseid && orgslug) { - fetchCourseInfo(); - } - return () => {}; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [courseid && orgslug]); - return ( <> - {isLoading ? ( + {error &&
Failed to load
} + {!course ? (Course
{courseInfo.course.description}
+{course.course.description}
{courseInfo.course.learnings == ![] ? "no data" : courseInfo.course.learnings}
+{course.course.learnings == ![] ? "no data" : course.course.learnings}