@@ -60,6 +60,10 @@ const CatalogueContentInner = ({ subject }: { subject: string | null }) => {
6060 handleDownloadSelected,
6161 } = useFilters ( ) ;
6262
63+ useEffect ( ( ) => {
64+ setCurrentPage ( 1 ) ;
65+ } , [ subject ] ) ;
66+
6367 // Fetch related subjects when subject changes
6468 useEffect ( ( ) => {
6569 if ( ! subject ) return ;
@@ -92,11 +96,21 @@ const CatalogueContentInner = ({ subject }: { subject: string | null }) => {
9296 localStorage . getItem ( "userSubjects" ) ?? "[]" ,
9397 ) as StoredSubjects ;
9498 const subjectName = searchParams . get ( "subject" ) ;
95- setSelectedExams ( searchParams . get ( "exams" ) ?. split ( "," ) . filter ( Boolean ) ?? [ ] ) ;
96- setSelectedSlots ( searchParams . get ( "slots" ) ?. split ( "," ) . filter ( Boolean ) ?? [ ] ) ;
97- setSelectedYears ( searchParams . get ( "years" ) ?. split ( "," ) . filter ( Boolean ) ?? [ ] ) ;
98- setSelectedCampuses ( searchParams . get ( "campus" ) ?. split ( "," ) . filter ( Boolean ) ?? [ ] ) ;
99- setSelectedSemesters ( searchParams . get ( "semester" ) ?. split ( "," ) . filter ( Boolean ) ?? [ ] ) ;
99+ setSelectedExams (
100+ searchParams . get ( "exams" ) ?. split ( "," ) . filter ( Boolean ) ?? [ ] ,
101+ ) ;
102+ setSelectedSlots (
103+ searchParams . get ( "slots" ) ?. split ( "," ) . filter ( Boolean ) ?? [ ] ,
104+ ) ;
105+ setSelectedYears (
106+ searchParams . get ( "years" ) ?. split ( "," ) . filter ( Boolean ) ?? [ ] ,
107+ ) ;
108+ setSelectedCampuses (
109+ searchParams . get ( "campus" ) ?. split ( "," ) . filter ( Boolean ) ?? [ ] ,
110+ ) ;
111+ setSelectedSemesters (
112+ searchParams . get ( "semester" ) ?. split ( "," ) . filter ( Boolean ) ?? [ ] ,
113+ ) ;
100114 setSelectedAnswerKeyIncluded ( searchParams . get ( "answerkey" ) === "true" ) ;
101115 if ( subjectName && Array . isArray ( currentPinnedSubjects ) ) {
102116 if ( currentPinnedSubjects . includes ( subjectName ) ) {
@@ -106,7 +120,15 @@ const CatalogueContentInner = ({ subject }: { subject: string | null }) => {
106120 }
107121 }
108122 }
109- } , [ searchParams , setSelectedExams , setSelectedSlots , setSelectedYears , setSelectedSemesters , setSelectedCampuses , setSelectedAnswerKeyIncluded ] ) ;
123+ } , [
124+ searchParams ,
125+ setSelectedExams ,
126+ setSelectedSlots ,
127+ setSelectedYears ,
128+ setSelectedSemesters ,
129+ setSelectedCampuses ,
130+ setSelectedAnswerKeyIncluded ,
131+ ] ) ;
110132
111133 const handlePinToggle = ( ) => {
112134 const current = ! pinned ;
@@ -151,12 +173,7 @@ const CatalogueContentInner = ({ subject }: { subject: string | null }) => {
151173 } ;
152174
153175 void fetchPapers ( ) ;
154- } , [
155- subject ,
156- isMounted ,
157- setPapers ,
158- setFilterOptions ,
159- ] ) ;
176+ } , [ subject , isMounted , setPapers , setFilterOptions ] ) ;
160177
161178 useEffect ( ( ) => {
162179 if ( ! papers . length ) return ;
@@ -189,15 +206,14 @@ const CatalogueContentInner = ({ subject }: { subject: string | null }) => {
189206 answerkeyCondition
190207 ) ;
191208 } ) ;
192-
193209 setFilteredPapers ( filtered ) ;
194210 setAppliedFilters (
195211 selectedExams . length > 0 ||
196- selectedSlots . length > 0 ||
197- selectedYears . length > 0 ||
198- selectedSemesters . length > 0 ||
199- selectedCampuses . length > 0 ||
200- selectedAnswerKeyIncluded
212+ selectedSlots . length > 0 ||
213+ selectedYears . length > 0 ||
214+ selectedSemesters . length > 0 ||
215+ selectedCampuses . length > 0 ||
216+ selectedAnswerKeyIncluded ,
201217 ) ;
202218 } , [
203219 papers ,
0 commit comments