|
1 | 1 | import type { Metadata } from "next"; |
2 | 2 | import { notFound } from "next/navigation"; |
3 | 3 |
|
4 | | -import { getAllUniversities, getUniversityDetail } from "@/apis/universities/server"; |
| 4 | +import { getAllUniversities, getUniversityDetail, getUniversityDetailWithStatus } from "@/apis/universities/server"; |
5 | 5 | import TopDetailNavigation from "@/components/layout/TopDetailNavigation"; |
6 | 6 | import { getHomeUniversityBySlug, HOME_UNIVERSITY_SLUGS } from "@/constants/university"; |
7 | 7 | import type { HomeUniversitySlug } from "@/types/university"; |
8 | 8 |
|
9 | 9 | // UniversityDetail 컴포넌트 |
10 | 10 | import UniversityDetail from "./_ui/UniversityDetail"; |
| 11 | +import UniversityDetailPreparingFallback from "./_ui/UniversityDetailPreparingFallback"; |
11 | 12 |
|
12 | 13 | export const revalidate = false; // 완전 정적 생성 |
13 | 14 |
|
@@ -117,12 +118,27 @@ const CollegeDetailPage = async ({ params }: PageProps) => { |
117 | 118 | } |
118 | 119 |
|
119 | 120 | const collegeId = Number(id); |
120 | | - const universityData = await getUniversityDetail(collegeId); |
121 | | - |
122 | | - if (!universityData) { |
| 121 | + if (Number.isNaN(collegeId)) { |
123 | 122 | notFound(); |
124 | 123 | } |
125 | 124 |
|
| 125 | + const universityDetailResult = await getUniversityDetailWithStatus(collegeId); |
| 126 | + |
| 127 | + if (!universityDetailResult.ok) { |
| 128 | + if (universityDetailResult.status === 404) { |
| 129 | + notFound(); |
| 130 | + } |
| 131 | + |
| 132 | + return ( |
| 133 | + <> |
| 134 | + <TopDetailNavigation title="파견 학교 상세" backHref={`/university/${homeUniversity}`} /> |
| 135 | + <UniversityDetailPreparingFallback backHref={`/university/${homeUniversity}`} /> |
| 136 | + </> |
| 137 | + ); |
| 138 | + } |
| 139 | + |
| 140 | + const universityData = universityDetailResult.data; |
| 141 | + |
126 | 142 | const convertedKoreanName = |
127 | 143 | universityData.term !== process.env.NEXT_PUBLIC_CURRENT_TERM |
128 | 144 | ? `${universityData.koreanName}(${universityData.term})` |
|
0 commit comments