@@ -37,29 +37,45 @@ import { FAQ } from "@/components/Faq";
3737import { EventMessage } from " @/components/EventMessage" ;
3838import dayjs from " dayjs" ;
3939import TiltedCard from " @/components/TiltedCard" ;
40+ import RelatedEvents from " @/components/RelatedEvents/index.astro" ;
4041
4142export async function getStaticPaths() {
42- const events = await getEventsCollection ();
43+ const allEvents = await getEventsCollection ();
4344
4445 return Promise .all (
45- events .map (async (event ) => ({
46- params: { id: event .id },
47- props: {
48- event ,
49- subPages: await getEventSubPagesCollection (event ),
50- speakers: await getEntries (event .data .speakers ?? []),
51- coOrganizers: await getEntries (event .data .coOrganizers ?? []),
52- sponsors: await getEntries (
53- (event .data .sponsors ?? []).map ((s ) => s .slug ),
54- ),
55- partners: await getEntries (event .data .partners ?? []),
56- },
57- })),
46+ allEvents .map (async (event ) => {
47+ const relatedEvents = allEvents
48+ .filter (
49+ (e ) =>
50+ e .id !== event .id &&
51+ e .data .city === event .data .city &&
52+ (dayjs (e .data .date ).isAfter (dayjs ()) ||
53+ dayjs (e .data .date ).isAfter (dayjs ().subtract (30 , " day" ))),
54+ )
55+ .sort ((a , b ) => dayjs (a .data .date ).diff (dayjs (b .data .date )))
56+ .slice (0 , 3 );
57+
58+ return {
59+ params: { id: event .id },
60+ props: {
61+ event ,
62+ relatedEvents ,
63+ subPages: await getEventSubPagesCollection (event ),
64+ speakers: await getEntries (event .data .speakers ?? []),
65+ coOrganizers: await getEntries (event .data .coOrganizers ?? []),
66+ sponsors: await getEntries (
67+ (event .data .sponsors ?? []).map ((s ) => s .slug ),
68+ ),
69+ partners: await getEntries (event .data .partners ?? []),
70+ },
71+ };
72+ }),
5873 );
5974}
6075
6176const {
6277 event,
78+ relatedEvents,
6379 speakers,
6480 coOrganizers : _coOrganizers,
6581 sponsors,
@@ -632,6 +648,8 @@ const ctaEventMetadata = {
632648 </a >
633649 </div >
634650
651+ <RelatedEvents currentEvent ={ event } relatedEvents ={ relatedEvents } />
652+
635653 <div class =" py-8 md:py-12" >
636654 <JoinTheCommunity />
637655 </div >
0 commit comments