@@ -26,25 +26,28 @@ const Collapsible = ({ course, color, state }) => {
26
26
const dispatch = useDispatch ( ) ;
27
27
28
28
const onClick = ( ) => {
29
- if ( initial && ! open ) triggerGetCourse ( ) ;
29
+ if ( ! open ) triggerGetCourse ( ) ;
30
+ else dispatch ( ChangeCurrentYearData ( null , [ ] ) ) ;
30
31
setOpen ( ! open ) ;
31
32
} ;
32
33
33
34
const getCurrentCourse = async ( code ) => {
35
+ dispatch ( ChangeCurrentYearData ( null , [ ] ) ) ; // Clear folderData till next folderData is loaded
36
+ setLoading ( true ) ;
34
37
let currCourse = null ;
35
38
let insessionStorage = null ;
36
39
try {
37
- currCourse = allCourseData . find (
38
- ( course ) => course . code . toLowerCase ( ) === code . toLowerCase ( ) . replaceAll ( " " , "" )
40
+ const allLocal = JSON . parse ( sessionStorage . getItem ( "AllCourses" ) ) ;
41
+ insessionStorage = allLocal ?. find (
42
+ ( course ) => course . code . toLowerCase ( ) === code . toLowerCase ( ) . replaceAll ( " " , "" )
39
43
) ;
40
44
} catch ( error ) {
41
45
sessionStorage . removeItem ( "AllCourses" ) ;
42
46
location . reload ( ) ;
43
47
}
44
48
try {
45
- const allLocal = JSON . parse ( sessionStorage . getItem ( "AllCourses" ) ) ;
46
- insessionStorage = allLocal ?. find (
47
- ( course ) => course . code . toLowerCase ( ) === code . toLowerCase ( )
49
+ currCourse = allCourseData . find (
50
+ ( course ) => course . code . toLowerCase ( ) === code . toLowerCase ( ) . replaceAll ( " " , "" )
48
51
) ;
49
52
} catch ( error ) {
50
53
sessionStorage . removeItem ( "AllCourses" ) ;
@@ -82,37 +85,30 @@ const Collapsible = ({ course, color, state }) => {
82
85
}
83
86
}
84
87
setLoading ( false ) ;
88
+ dispatch ( ChangeFolder ( null ) ) ;
85
89
return currCourse ;
86
90
} ;
87
91
88
92
const triggerGetCourse = ( ) => {
89
93
const run = async ( ) => {
90
94
const t = await getCurrentCourse ( course . code ) ;
91
95
if ( t ) {
96
+ const yearChildren = Array . isArray ( t . children ?. [ t . children . length - 1 ] ?. children )
97
+ ? t . children [ t . children . length - 1 ] . children : [ ] ;
92
98
if ( initial ) {
93
- const prevChildren = Array . isArray ( t . children ?. [ t . children . length - 1 ] ?. children )
94
- ? t . children [ t . children . length - 1 ] . children : [ ] ;
95
- dispatch ( ChangeCurrentYearData ( t . children . length - 1 , prevChildren ) ) ;
99
+ dispatch ( ChangeCurrentYearData ( t . children . length - 1 , yearChildren ) ) ;
96
100
setInitial ( false ) ;
97
101
} else {
98
102
try {
99
- dispatch (
100
- ChangeCurrentYearData ( currentYear , t . children ?. [ currentYear ] . children )
101
- ) ;
103
+ dispatch ( ChangeCurrentYearData ( t . children . length - 1 , yearChildren ) ) ;
102
104
if ( ! folderId ) {
103
- dispatch ( ChangeFolder ( t . children ?. [ currentYear ] ) ) ;
105
+ dispatch ( ChangeFolder ( t . children ?. [ t . children . length - 1 ] ) ) ;
104
106
folderId = null ;
105
107
}
106
108
} catch ( error ) {
107
109
// console.log(error);
108
- dispatch (
109
- ChangeCurrentYearData (
110
- t . children . length - 1 ,
111
- t . children ?. [ t . children . length - 1 ] . children
112
- )
113
- ) ;
110
+ dispatch ( ChangeCurrentYearData ( t . children . length - 1 , yearChildren ) ) ;
114
111
dispatch ( ChangeFolder ( t . children ?. [ t . children . length - 1 ] ) ) ;
115
- setInitial ( false ) ;
116
112
}
117
113
}
118
114
dispatch ( ChangeCurrentCourse ( t . children , t . code ) ) ;
@@ -125,14 +121,13 @@ const Collapsible = ({ course, color, state }) => {
125
121
useEffect ( ( ) => {
126
122
// console.log(currCourseCode);
127
123
// console.log(course);
128
- //console.log(currCourseCode?.toLowerCase(),courseCode?.toLowerCase());
129
124
if ( currCourseCode ?. toLowerCase ( ) !== courseCode ?. toLowerCase ( ) ) { setOpen ( false ) ; }
130
125
if ( currCourseCode ?. toLowerCase ( ) === courseCode ?. toLowerCase ( ) ) {
131
126
//console.log("called");
132
127
triggerGetCourse ( ) ;
133
128
setOpen ( true ) ;
134
129
}
135
- setInitial ( true ) ;
130
+ // setInitial(true);
136
131
} , [ currCourseCode ] ) ;
137
132
138
133
useEffect ( ( ) => {
@@ -145,7 +140,6 @@ const Collapsible = ({ course, color, state }) => {
145
140
146
141
useEffect ( ( ) => {
147
142
if ( initial ) return ;
148
- //console.log(code,courseCode?.toLowerCase());
149
143
if ( code && folderId && code ?. toLowerCase ( ) === courseCode ?. toLowerCase ( ) ) {
150
144
// console.log(course);
151
145
try {
0 commit comments