Skip to content

Commit 2146c1a

Browse files
Update filters.tsx
Added color for “Select All” and “Recent” options in semester dropdown.
1 parent 1a9d437 commit 2146c1a

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

Diff for: src/components/search/Filters/filters.tsx

+18-2
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,12 @@ const Filters = ({
3535
}: FiltersProps) => {
3636
const [minGPA, setMinGPA] = useState('');
3737
const [minRating, setMinRating] = useState('');
38+
const [semesters, setSemesters] = useState<string[]>([]);
3839
const MAX_NUM_RECENT_SEMESTERS = 4; // recentSemesters will have up to the last 4 long-semesters
3940
const recentSemesters = getRecentSemesters(); // recentSemesters contains semesters offered in the last 2 years; recentSemesters.length = [0, 4] range
4041
academicSessions.sort((a, b) => compareSemesters(b, a)); // display the semesters in order of recency (most recent first)
41-
42+
setSemesters(chosenSessions);
43+
4244
//set value from query
4345
const router = useRouter();
4446
useEffect(() => {
@@ -230,28 +232,42 @@ const Filters = ({
230232
label="Semesters"
231233
labelId="Semesters"
232234
multiple
233-
value={chosenSessions}
235+
value={semesters}
234236
onChange={(event: SelectChangeEvent<string[]>) => {
235237
const {
236238
target: { value },
237239
} = event;
238240
if (value.includes('select-all')) {
239241
if (chosenSessions.length === academicSessions.length) {
240242
addChosenSessions(() => []);
243+
setSemesters(() => []);
241244
} else {
242245
addChosenSessions(() => academicSessions);
246+
setSemesters(() => academicSessions.concat(['select-all']));
243247
}
244248
} else if (value.includes('recent')) {
245249
if (
246250
chosenSessions.length === recentSemesters.length &&
247251
chosenSessions.every((el) => recentSemesters.includes(el))
248252
) {
249253
addChosenSessions(() => academicSessions);
254+
setSemesters(() => academicSessions.concat(['select-all']));
250255
} else {
251256
addChosenSessions(() => recentSemesters);
257+
setSemesters(() => recentSessions.concat(['recent']));
252258
}
253259
} else {
254260
addChosenSessions(() => value as string[]);
261+
if (chosenSessions.length === academicSessions.length) {
262+
setSemesters(() => academicSessions.concat(['select-all']));
263+
} else if (
264+
chosenSessions.length === recentSemesters.length &&
265+
chosenSessions.every((el) => recentSemesters.includes(el))
266+
) {
267+
setSemesters(() => recentSessions.concat(['recent']));
268+
} else {
269+
setSemesters(() => chosenSessions);
270+
}
255271
}
256272
}}
257273
renderValue={(selected) => {

0 commit comments

Comments
 (0)