feat: use new trail access method for course progress and course page

This commit is contained in:
swve 2025-06-13 11:56:51 +02:00
parent 3345fb871c
commit 06639d85ff
3 changed files with 27 additions and 8 deletions

View file

@ -114,9 +114,13 @@ const CourseClient = (props: any) => {
} }
const isActivityDone = (activity: any) => { const isActivityDone = (activity: any) => {
const run = course?.trail?.runs?.find( const cleanCourseUuid = course.course_uuid?.replace('course_', '');
(run: any) => run.course_id == course.id const run = trailData?.runs?.find(
) (run: any) => {
const cleanRunCourseUuid = run.course?.course_uuid?.replace('course_', '');
return cleanRunCourseUuid === cleanCourseUuid;
}
);
if (run) { if (run) {
return run.steps.find((step: any) => step.activity_id == activity.id) return run.steps.find((step: any) => step.activity_id == activity.id)
} }
@ -171,7 +175,16 @@ const CourseClient = (props: any) => {
></div> ></div>
)} )}
{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;
})() && (
<ActivityIndicators <ActivityIndicators
course_uuid={props.course.course_uuid} course_uuid={props.course.course_uuid}
orgslug={orgslug} orgslug={orgslug}

View file

@ -488,6 +488,7 @@ function CoursesActions({ courseuuid, orgslug, course, trailData }: CourseAction
orgslug={orgslug} orgslug={orgslug}
isOpen={isProgressOpen} isOpen={isProgressOpen}
onClose={() => setIsProgressOpen(false)} onClose={() => setIsProgressOpen(false)}
trailData={trailData}
/> />
</div> </div>
</div> </div>

View file

@ -9,9 +9,10 @@ interface CourseProgressProps {
orgslug: string orgslug: string
isOpen: boolean isOpen: boolean
onClose: () => void onClose: () => void
trailData: any
} }
const CourseProgress: React.FC<CourseProgressProps> = ({ course, orgslug, isOpen, onClose }) => { const CourseProgress: React.FC<CourseProgressProps> = ({ course, orgslug, isOpen, onClose, trailData }) => {
const [completedActivities, setCompletedActivities] = useState(0) const [completedActivities, setCompletedActivities] = useState(0)
const [totalActivities, setTotalActivities] = useState(0) const [totalActivities, setTotalActivities] = useState(0)
@ -33,9 +34,13 @@ const CourseProgress: React.FC<CourseProgressProps> = ({ course, orgslug, isOpen
}, [course]) }, [course])
const isActivityDone = (activity: any) => { const isActivityDone = (activity: any) => {
const run = course?.trail?.runs?.find( const cleanCourseUuid = course.course_uuid?.replace('course_', '');
(run: any) => run.course_id === course.id const run = trailData?.runs?.find(
) (run: any) => {
const cleanRunCourseUuid = run.course?.course_uuid?.replace('course_', '');
return cleanRunCourseUuid === cleanCourseUuid;
}
);
if (run) { if (run) {
return run.steps.find((step: any) => step.activity_id === activity.id) return run.steps.find((step: any) => step.activity_id === activity.id)
} }