Skip to content

Commit 0c46451

Browse files
committed
Units page prefetch
1 parent 12c6955 commit 0c46451

File tree

13 files changed

+61
-30
lines changed

13 files changed

+61
-30
lines changed

frontends/api/src/ssr/prefetch.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
import { QueryClient, dehydrate } from "@tanstack/react-query"
22
import type { Query } from "@tanstack/react-query"
33

4-
// Utility to avoid repetition in server components
5-
export const prefetch = async (queries: (Query | unknown)[]) => {
6-
const queryClient = new QueryClient()
4+
/* Utility to avoid repetition in server components
5+
* Optionally pass the queryClient returned from a previous prefetch
6+
* where queries are dependent on previous results
7+
*/
8+
export const prefetch = async (
9+
queries: (Query | unknown)[],
10+
queryClient?: QueryClient,
11+
) => {
12+
queryClient = queryClient || new QueryClient()
713

814
await Promise.all(
915
queries.map((query) => queryClient.prefetchQuery(query as Query)),
1016
)
1117

12-
return dehydrate(queryClient)
18+
return { dehydratedState: dehydrate(queryClient), queryClient }
1319
}

frontends/main/src/app-pages/UnitsListingPage/UnitCard.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from "react"
2-
import { LearningResourceOfferorDetail, OfferedByEnum } from "api"
2+
import type { LearningResourceOfferorDetail, OfferedByEnum } from "api"
33
import {
44
Card,
55
Skeleton,

frontends/main/src/app-pages/UnitsListingPage/UnitsListingPage.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
import { backgroundSrcSetCSS } from "ol-utilities"
1515
import backgroundSteps from "@/public/images/backgrounds/background_steps.jpg"
1616
import { RiBookOpenLine, RiSuitcaseLine } from "@remixicon/react"
17-
import { LearningResourceOfferorDetail } from "api"
17+
import type { LearningResourceOfferorDetail } from "api"
1818
import { HOME } from "@/common/urls"
1919
import { UnitCards, UnitCardLoading } from "./UnitCard"
2020
import { aggregateProgramCounts, aggregateCourseCounts } from "@/common/utils"
@@ -168,7 +168,6 @@ const UnitSection: React.FC<UnitSectionProps> = (props) => {
168168
programCounts,
169169
isLoading,
170170
} = props
171-
172171
return (
173172
<UnitContainer data-testid={`UnitSection-${id}`}>
174173
<div>

frontends/main/src/app/departments/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import React from "react"
22
import { Metadata } from "next"
3-
import DepartmentListingPage from "@/app-pages/DepartmentListingPage/DepartmentListingPage"
4-
import { standardizeMetadata } from "@/common/metadata"
53
import { Hydrate } from "@tanstack/react-query"
4+
import { standardizeMetadata } from "@/common/metadata"
65
import { learningResources } from "api/hooks/learningResources"
76
import { channels } from "api/hooks/channels"
87
import { prefetch } from "api/ssr/prefetch"
8+
import DepartmentListingPage from "@/app-pages/DepartmentListingPage/DepartmentListingPage"
99

1010
export const metadata: Metadata = standardizeMetadata({
1111
title: "Departments",
1212
})
1313

1414
const Page: React.FC = async () => {
15-
const dehydratedState = await prefetch([
15+
const { dehydratedState } = await prefetch([
1616
channels.countsByType("department"),
1717
learningResources.schools(),
1818
])

frontends/main/src/app/learningpaths/[id]/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from "react"
2-
import LearningPathDetailsPage from "@/app-pages/LearningPathDetailsPage/LearningPathDetailsPage"
3-
import RestrictedRoute from "@/components/RestrictedRoute/RestrictedRoute"
42
import { Permissions } from "@/common/permissions"
3+
import RestrictedRoute from "@/components/RestrictedRoute/RestrictedRoute"
4+
import LearningPathDetailsPage from "@/app-pages/LearningPathDetailsPage/LearningPathDetailsPage"
55

66
const Page: React.FC = () => {
77
return (

frontends/main/src/app/learningpaths/page.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import React from "react"
2-
import LearningPathListingPage from "@/app-pages/LearningPathListingPage/LearningPathListingPage"
3-
42
import { Metadata } from "next"
53
import { standardizeMetadata } from "@/common/metadata"
6-
import RestrictedRoute from "@/components/RestrictedRoute/RestrictedRoute"
74
import { Permissions } from "@/common/permissions"
5+
import RestrictedRoute from "@/components/RestrictedRoute/RestrictedRoute"
6+
import LearningPathListingPage from "@/app-pages/LearningPathListingPage/LearningPathListingPage"
87

98
export const metadata: Metadata = standardizeMetadata({
109
title: "Learning Paths",

frontends/main/src/app/onboarding/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import React from "react"
22
import { Metadata } from "next"
3-
import OnboardingPage from "@/app-pages/OnboardingPage/OnboardingPage"
43
import { standardizeMetadata } from "@/common/metadata"
5-
import RestrictedRoute from "@/components/RestrictedRoute/RestrictedRoute"
64
import { Permissions } from "@/common/permissions"
5+
import RestrictedRoute from "@/components/RestrictedRoute/RestrictedRoute"
6+
import OnboardingPage from "@/app-pages/OnboardingPage/OnboardingPage"
77

88
export const metadata: Metadata = standardizeMetadata({
99
title: "Onboarding",

frontends/main/src/app/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export async function generateMetadata({
2424
}
2525

2626
const Page: React.FC = async () => {
27-
const dehydratedState = await prefetch([
27+
const { dehydratedState } = await prefetch([
2828
// Featured Courses carousel "All"
2929
learningResources.featured({
3030
limit: 12,

frontends/main/src/app/privacy/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import React from "react"
22
import { Metadata } from "next"
3-
4-
import PrivacyPage from "@/app-pages/PrivacyPage/PrivacyPage"
53
import { standardizeMetadata } from "@/common/metadata"
4+
import PrivacyPage from "@/app-pages/PrivacyPage/PrivacyPage"
5+
66
export const metadata: Metadata = standardizeMetadata({
77
title: "Privacy Policy",
88
})

frontends/main/src/app/terms/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import React from "react"
22
import { Metadata } from "next"
3-
4-
import TermsPage from "@/app-pages/TermsPage/TermsPage"
53
import { standardizeMetadata } from "@/common/metadata"
4+
import TermsPage from "@/app-pages/TermsPage/TermsPage"
5+
66
export const metadata: Metadata = standardizeMetadata({
77
title: "Terms of Service",
88
})

0 commit comments

Comments
 (0)