From 06639d85ff8456f6947dcae579c69b0d93457ef8 Mon Sep 17 00:00:00 2001 From: swve Date: Fri, 13 Jun 2025 11:56:51 +0200 Subject: [PATCH] feat: use new trail access method for course progress and course page --- .../(withmenu)/course/[courseuuid]/course.tsx | 21 +++++++++++++++---- .../Courses/CourseActions/CoursesActions.tsx | 1 + .../Courses/CourseProgress/CourseProgress.tsx | 13 ++++++++---- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx b/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx index dce108e1..c4d70d1d 100644 --- a/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx +++ b/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx @@ -114,9 +114,13 @@ const CourseClient = (props: any) => { } const isActivityDone = (activity: any) => { - const run = course?.trail?.runs?.find( - (run: any) => run.course_id == course.id - ) + const cleanCourseUuid = course.course_uuid?.replace('course_', ''); + const run = trailData?.runs?.find( + (run: any) => { + const cleanRunCourseUuid = run.course?.course_uuid?.replace('course_', ''); + return cleanRunCourseUuid === cleanCourseUuid; + } + ); if (run) { return run.steps.find((step: any) => step.activity_id == activity.id) } @@ -171,7 +175,16 @@ const CourseClient = (props: any) => { > )} - {course?.trail?.runs?.find((run: any) => run.course_id == course.id) && ( + {(() => { + const cleanCourseUuid = course.course_uuid?.replace('course_', ''); + const run = trailData?.runs?.find( + (run: any) => { + const cleanRunCourseUuid = run.course?.course_uuid?.replace('course_', ''); + return cleanRunCourseUuid === cleanCourseUuid; + } + ); + return run; + })() && ( setIsProgressOpen(false)} + trailData={trailData} /> diff --git a/apps/web/components/Objects/Courses/CourseProgress/CourseProgress.tsx b/apps/web/components/Objects/Courses/CourseProgress/CourseProgress.tsx index 4b697d18..e4e9a17a 100644 --- a/apps/web/components/Objects/Courses/CourseProgress/CourseProgress.tsx +++ b/apps/web/components/Objects/Courses/CourseProgress/CourseProgress.tsx @@ -9,9 +9,10 @@ interface CourseProgressProps { orgslug: string isOpen: boolean onClose: () => void + trailData: any } -const CourseProgress: React.FC = ({ course, orgslug, isOpen, onClose }) => { +const CourseProgress: React.FC = ({ course, orgslug, isOpen, onClose, trailData }) => { const [completedActivities, setCompletedActivities] = useState(0) const [totalActivities, setTotalActivities] = useState(0) @@ -33,9 +34,13 @@ const CourseProgress: React.FC = ({ course, orgslug, isOpen }, [course]) const isActivityDone = (activity: any) => { - const run = course?.trail?.runs?.find( - (run: any) => run.course_id === course.id - ) + const cleanCourseUuid = course.course_uuid?.replace('course_', ''); + const run = trailData?.runs?.find( + (run: any) => { + const cleanRunCourseUuid = run.course?.course_uuid?.replace('course_', ''); + return cleanRunCourseUuid === cleanCourseUuid; + } + ); if (run) { return run.steps.find((step: any) => step.activity_id === activity.id) }