@@ -12,64 +12,78 @@ import { LessonSidebar } from '@/src/components/lesson/lesson-sidebar'
1212export const revalidate = 60
1313
1414async function getUserProgress ( courseId : string ) {
15- const cookie = await cookies ( )
16-
17- const token = cookie . get ( 'token' ) ?. value
18-
19- const { data : progressCount } = await api . get < number > (
20- `/progress/${ courseId } ` ,
21- {
22- headers : {
23- 'X-Session-Token' : token ?? ''
24- }
25- }
26- )
27-
28- const { data : completedLessons } = await api . get < string [ ] > (
29- `/lessons/${ courseId } /progress` ,
30- {
31- headers : {
32- 'X-Session-Token' : token ?? ''
33- }
34- }
35- )
15+ const cookieStore = await cookies ( )
16+ const token = cookieStore . get ( 'token' ) ?. value
17+
18+ const [ { data : progressCount } , { data : completedLessons } ] =
19+ await Promise . all ( [
20+ api . get < number > ( `/progress/${ courseId } ` , {
21+ headers : {
22+ 'X-Session-Token' : token ?? ''
23+ }
24+ } ) ,
25+ api . get < string [ ] > ( `/lessons/${ courseId } /progress` , {
26+ headers : {
27+ 'X-Session-Token' : token ?? ''
28+ }
29+ } )
30+ ] )
3631
3732 return { progressCount, completedLessons }
3833}
3934
4035export async function generateMetadata ( {
4136 params
4237} : {
43- params : Promise < { slug : string } >
38+ params : { id : string }
4439} ) : Promise < Metadata > {
45- const { slug } = await params
40+ const { id } = await params
4641
47- const lesson = await getLesson ( slug ) . catch ( ( ) => {
48- notFound ( )
49- } )
42+ try {
43+ const lesson = await getLesson ( id )
44+
45+ if ( ! lesson )
46+ return {
47+ title : 'Урок не найден'
48+ }
5049
51- return {
52- title : lesson . title ,
53- description : lesson . description
50+ return {
51+ title : lesson . title ,
52+ description : lesson . description ?? ''
53+ }
54+ } catch ( error ) {
55+ console . error ( '[generateMetadata] getLesson failed' , {
56+ id,
57+ error
58+ } )
59+
60+ return {
61+ title : 'Урок'
62+ }
5463 }
5564}
5665
5766export default async function LessonPage ( {
5867 params
5968} : {
60- params : Promise < { slug : string } >
69+ params : Promise < { id : string } >
6170} ) {
62- const { slug } = await params
63-
64- const lesson = await getLesson ( slug ) . catch ( error => {
65- notFound ( )
71+ const { id } = await params
72+
73+ const lesson = await getLesson ( id ) . catch ( error => {
74+ console . error ( '[LessonPage] getLesson failed' , {
75+ id,
76+ error
77+ } )
78+ return null
6679 } )
6780
68- const lessons = await getCourseLessons ( lesson . course . id )
81+ if ( ! lesson ) notFound ( )
6982
70- const { progressCount, completedLessons } = await getUserProgress (
71- lesson . course . id
72- )
83+ const [ lessons , { progressCount, completedLessons } ] = await Promise . all ( [
84+ getCourseLessons ( lesson . course . id ) ,
85+ getUserProgress ( lesson . course . id )
86+ ] )
7387
7488 return (
7589 < div className = 'h-full' >
0 commit comments