11"use client"
22
3- import React from "react"
3+ import React , { useMemo } from "react"
44import DOMPurify from "dompurify"
55import Image from "next/image"
66import { useFeatureFlagEnabled } from "posthog-js/react"
77import { FeatureFlags } from "@/common/feature_flags"
8- import { useQueries , useQuery } from "@tanstack/react-query"
8+ import { useInfiniteQuery , useQueries , useQuery } from "@tanstack/react-query"
99import {
1010 programsQueries ,
1111 programCollectionQueries ,
@@ -26,6 +26,7 @@ import {
2626 CourseRunEnrollment ,
2727 OrganizationPage ,
2828 UserProgramEnrollmentDetail ,
29+ CourseWithCourseRunsSerializerV2 ,
2930} from "@mitodl/mitxonline-api-axios/v2"
3031import { useMitxOnlineCurrentUser } from "api/mitxonline-hooks/user"
3132import { ButtonLink } from "@mitodl/smoot-design"
@@ -249,15 +250,24 @@ const OrgProgramDisplay: React.FC<{
249250 ( enrollment ) => enrollment . program . id === program . id ,
250251 )
251252 const hasValidCertificate = ! ! programEnrollment ?. certificate
252- const courses = useQuery (
253- coursesQueries . coursesList ( { id : program . courseIds , org_id : orgId } ) ,
253+ const courses = useInfiniteQuery (
254+ coursesQueries . coursesListInfinite ( { id : program . courseIds , org_id : orgId } ) ,
254255 )
255256 const skeleton = (
256257 < Skeleton width = "100%" height = "65px" style = { { marginBottom : "16px" } } />
257258 )
258259 if ( programLoading || courses . isLoading ) return skeleton
260+ if ( ! courses . isLoading ) console . log ( courses . data )
259261 const transformedCourses = transform . mitxonlineOrgCourses ( {
260- courses : courses . data ?. results ?? [ ] ,
262+ courses : ( ( ) => {
263+ let courseData : Array < CourseWithCourseRunsSerializerV2 > = [ ]
264+
265+ for ( const page of courses . data ?. pages || [ ] ) {
266+ courseData = courseData . concat ( page . results )
267+ }
268+
269+ return courseData
270+ } ) ( ) ,
261271 contracts : contracts ?? [ ] ,
262272 enrollments : courseRunEnrollments ?? [ ] ,
263273 } )
0 commit comments