Skip to content

Commit 5199e3a

Browse files
authored
feat: sort activitites by starting timeslot (#94)
1 parent 66f4511 commit 5199e3a

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

src/components/Timetable.tsx

+17
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,23 @@ function timeToMinutes(time: string) {
1616
return hours * 60 + minutes + seconds / 60;
1717
}
1818

19+
export function findStartTime(activity: ICBDActivity): number {
20+
let startTime = 24 * 60;
21+
22+
if (activity.timeslots) {
23+
const timeslots: Timeslot[] = JSON.parse(
24+
JSON.stringify(activity.timeslots)
25+
);
26+
27+
timeslots.forEach((t) => {
28+
let tTime = timeToMinutes(t.start_time);
29+
startTime = Math.min(tTime, startTime);
30+
});
31+
}
32+
33+
return startTime;
34+
}
35+
1936
function generateHourEntries(
2037
startTime: number,
2138
endTime: number,

src/pages/icbd.tsx

+8-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import DirectusImage from "@/components/DirectusImage";
33
import IcbdActivityCard from "@/components/IcbdActivityCard";
44
import ParticlesComponent from "@/components/Particles";
55
import TabTitle from "@/components/TabTitle";
6-
import { Timetable } from "@/components/Timetable";
6+
import { findStartTime, Timetable } from "@/components/Timetable";
77
import { directus, getDirectusImageUrl, populateLayoutProps } from "@/directus";
88
import { getTranslation, useTranslationTable } from "@/locales";
99
import style from "@/styles/ICBDPage.module.scss";
@@ -187,9 +187,13 @@ export default function ICBDPage(
187187
<h1>{tt["icbd.activities"]}</h1>
188188

189189
<div className={style.activitiesList}>
190-
{props.activities.map((activity: ICBDActivity) => (
191-
<IcbdActivityCard key={activity.id} activity={activity} />
192-
))}
190+
{props.activities
191+
.sort((a, b) => {
192+
return findStartTime(a) - findStartTime(b);
193+
})
194+
.map((activity: ICBDActivity) => (
195+
<IcbdActivityCard key={activity.id} activity={activity} />
196+
))}
193197
</div>
194198
</div>
195199
</div>

0 commit comments

Comments
 (0)