Skip to content

Commit 6d1d8e9

Browse files
committed
[Frontend] Immediately execute filters before passing them to FilterView
1 parent 003ff26 commit 6d1d8e9

File tree

5 files changed

+33
-35
lines changed

5 files changed

+33
-35
lines changed

services/frontend/src/components/CoursePopulation/index.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,12 @@ export const CoursePopulation = () => {
168168
courses={population?.coursestatistics ?? []}
169169
displayTray={!isFetching}
170170
filters={[
171-
genderFilter,
172-
studentNumberFilter,
173-
ageFilter,
171+
genderFilter(),
172+
studentNumberFilter(),
173+
ageFilter(),
174174
courseFilter({ courses: population?.coursestatistics }),
175-
creditsEarnedFilter,
176-
startYearAtUniFilter,
175+
creditsEarnedFilter(),
176+
startYearAtUniFilter(),
177177
programmeFilter({
178178
additionalModes: [
179179
{

services/frontend/src/components/CustomPopulation/index.jsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,15 @@ export const CustomPopulation = () => {
5757

5858
const filters = useMemo(() => {
5959
const filtersList = [
60-
genderFilter,
61-
ageFilter,
60+
genderFilter(),
61+
ageFilter(),
6262
courseFilter({ courses: population?.coursestatistics ?? [] }),
63-
creditsEarnedFilter,
64-
transferredToProgrammeFilter,
65-
startYearAtUniFilter,
66-
tagsFilter,
67-
programmeFilter,
68-
creditDateFilter,
63+
creditsEarnedFilter(),
64+
transferredToProgrammeFilter(),
65+
startYearAtUniFilter(),
66+
tagsFilter(),
67+
programmeFilter(),
68+
creditDateFilter(),
6969
enrollmentStatusFilter({
7070
allSemesters,
7171
programme: associatedProgramme,

services/frontend/src/components/FilterView/index.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import type { CourseStats } from '@oodikone/shared/routes/populations'
1010
import { FilterViewContext } from './context'
1111
import type { FilterContext, FilterViewContextState } from './context'
1212

13-
import type { Filter, FilterFactory } from './filters/createFilter'
13+
import type { Filter } from './filters/createFilter'
1414
import { FilterTray } from './FilterTray'
1515

1616
// TODO: Use acual Student type when available
@@ -19,17 +19,15 @@ export type Student = ReturnType<typeof useGetPopulationStatisticsByCourseQuery>
1919
export const FilterView: FC<{
2020
children: (filteredStudents: Student[], filteredCourses: any[]) => any
2121
name: string
22-
filters: (FilterFactory | Filter)[]
22+
filters: Filter[]
2323
students: Student[]
2424
courses: CourseStats[]
2525
displayTray: boolean
2626
initialOptions: Record<Filter['key'], any>
27-
}> = ({ children, name, filters: pFilters, students, courses, displayTray, initialOptions }) => {
27+
}> = ({ children, name, filters, students, courses, displayTray, initialOptions }) => {
2828
const dispatch = useAppDispatch()
2929
const storeFilterOptions = useAppSelector(state => selectViewFilters(state, name))
3030

31-
const filters: Filter[] = pFilters.map(filter => (typeof filter === 'function' ? filter() : filter))
32-
3331
const filterArgs = Object.fromEntries(filters.map(({ key, args }) => [key, args]))
3432
const filterOptions = useMemo(
3533
() =>

services/frontend/src/components/PopulationStatistics/index.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -166,29 +166,29 @@ export const PopulationStatistics = () => {
166166
useDegreeProgrammeTypes([programmeCode])?.[programmeCode] === 'urn:code:degree-program-type:masters-degree'
167167

168168
const filters = [
169-
!useUserHasRestrictedAccess() ? ageFilter : null,
170-
citizenshipFilter,
169+
!useUserHasRestrictedAccess() ? ageFilter() : null,
170+
citizenshipFilter(),
171171
courseFilter({ courses: population?.coursestatistics }),
172-
creditDateFilter,
173-
creditsEarnedFilter,
174-
curriculumPeriodFilter,
172+
creditDateFilter(),
173+
creditsEarnedFilter(),
174+
curriculumPeriodFilter(),
175175
enrollmentStatusFilter({
176176
allSemesters: allSemesters ?? [],
177177
programme: programmeCode,
178178
}),
179-
genderFilter,
179+
genderFilter(),
180180
graduatedFromProgrammeFilter({
181181
code: programmeCode,
182182
combinedProgrammeCode,
183183
showBachelorAndMaster,
184184
}),
185185
hopsFilter({ programmeCode, combinedProgrammeCode }),
186-
studentNumberFilter,
187-
startYearAtUniFilter,
186+
studentNumberFilter(),
187+
startYearAtUniFilter(),
188188
studyTrackFilter({ code: programmeCode }),
189189
studyRightStatusFilter({ code: programmeCode, combinedProgrammeCode, currentSemester, showBachelorAndMaster }),
190-
tagsFilter,
191-
transferredToProgrammeFilter,
190+
tagsFilter(),
191+
transferredToProgrammeFilter(),
192192
enableStudyRightTypeFilter ? studyRightTypeFilter({ programme: programmeCode }) : null,
193193

194194
// For combined programme admission type is the same as they started in bachelor programme

services/frontend/src/components/StudyGuidanceGroups/SingleStudyGuidanceGroup.jsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,20 +143,20 @@ const SingleStudyGroupFilterView = ({ group, population }) => {
143143
const { data } = useGetSemestersQuery()
144144
const { semesters: allSemesters } = data ?? { semesters: {} }
145145
const viewFilters = [
146-
filters.studentNumberFilter,
146+
filters.studentNumberFilter(),
147147
filters.enrollmentStatusFilter({
148148
allSemesters: allSemesters ?? [],
149149
programme: group?.tags?.studyProgramme,
150150
}),
151-
filters.ageFilter,
152-
filters.genderFilter,
153-
filters.startYearAtUniFilter,
154-
filters.tagsFilter,
151+
filters.ageFilter(),
152+
filters.genderFilter(),
153+
filters.startYearAtUniFilter(),
154+
filters.tagsFilter(),
155155
filters.courseFilter({
156156
courses: population?.coursestatistics ?? [],
157157
}),
158-
filters.creditDateFilter,
159-
filters.creditsEarnedFilter,
158+
filters.creditDateFilter(),
159+
filters.creditsEarnedFilter(),
160160
]
161161

162162
if (!group?.tags?.studyProgramme) {

0 commit comments

Comments
 (0)