11import { useState , useEffect , useCallback } from 'react' ;
2- import { Vod , Assign , Quiz } from '@/content/types' ;
2+ import { Vod , Assign , Quiz , CourseBase } from '@/content/types' ;
33import { loadDataFromStorage , saveDataToStorage } from '@/lib/storage' ;
44import { requestData } from '@/lib/fetchCourseData' ;
55import { isCurrentDateByDate , isCurrentDateInRange } from '@/lib/utils' ;
@@ -8,7 +8,7 @@ const makeVodKey = (courseId: string, title: string, week: number) => `${courseI
88const makeAssignKey = ( courseId : string , title : string , dueDate : string ) => `${ courseId } -${ title } -${ dueDate } ` ;
99const makeQuizKey = ( courseId : string , title : string , dueDate : string ) => `${ courseId } -${ title } -${ dueDate } ` ;
1010
11- export function useCourseData ( courses : any [ ] ) {
11+ export function useCourseData ( courses : CourseBase [ ] ) {
1212 const [ vods , setVods ] = useState < Vod [ ] > ( [ ] ) ;
1313 const [ assigns , setAssigns ] = useState < Assign [ ] > ( [ ] ) ;
1414 const [ quizes , setQuizes ] = useState < Quiz [ ] > ( [ ] ) ;
@@ -29,8 +29,8 @@ export function useCourseData(courses: any[]) {
2929 const tempQuizes : Quiz [ ] = [ ...quizes ] ;
3030
3131 const vodSet = new Set ( tempVods . map ( ( v ) => makeVodKey ( v . courseId , v . title , v . week ) ) ) ;
32- const assignSet = new Set ( tempAssigns . map ( ( a ) => makeAssignKey ( a . courseId , a . title , a . dueDate ) ) ) ;
33- const quizSet = new Set ( tempQuizes . map ( ( q ) => makeQuizKey ( q . courseId , q . title , q . dueDate ) ) ) ;
32+ const assignSet = new Set ( tempAssigns . map ( ( a ) => makeAssignKey ( a . courseId , a . title , a . dueDate ? a . dueDate : '' ) ) ) ;
33+ const quizSet = new Set ( tempQuizes . map ( ( q ) => makeQuizKey ( q . courseId , q . title , q . dueDate ? q . dueDate : '' ) ) ) ;
3434
3535 await Promise . all (
3636 courses . map ( async ( course ) => {
@@ -61,7 +61,11 @@ export function useCourseData(courses: any[]) {
6161 } ) ;
6262
6363 result . assignDataArray . forEach ( ( assignData ) => {
64- const assignKey = makeAssignKey ( course . courseId , assignData . title , assignData . dueDate ) ;
64+ const assignKey = makeAssignKey (
65+ course . courseId ,
66+ assignData . title ,
67+ assignData . dueDate ? assignData . dueDate : ''
68+ ) ;
6569 if ( ! assignSet . has ( assignKey ) ) {
6670 console . info ( assignKey ) ;
6771 assignSet . add ( assignKey ) ;
@@ -79,7 +83,7 @@ export function useCourseData(courses: any[]) {
7983 } ) ;
8084
8185 result . quizDataArray . forEach ( ( quizData ) => {
82- const quizKey = makeQuizKey ( course . courseId , quizData . title , quizData . dueDate ) ;
86+ const quizKey = makeQuizKey ( course . courseId , quizData . title , quizData . dueDate ? quizData . dueDate : '' ) ;
8387 if ( ! quizSet . has ( quizKey ) ) {
8488 console . info ( quizKey ) ;
8589 quizSet . add ( quizKey ) ;
@@ -112,6 +116,7 @@ export function useCourseData(courses: any[]) {
112116
113117 setIsPending ( false ) ;
114118 } catch ( error ) {
119+ console . warn ( error ) ;
115120 localStorage . removeItem ( 'lastRequestTime' ) ;
116121 setIsError ( true ) ;
117122 setIsPending ( false ) ;
0 commit comments