diff --git a/website/app/routes/2024-10-05-hackathon-at-sentry.tsx b/website/app/routes/2024-10-05-hackathon-at-sentry.tsx index 9ac8592..e85dd82 100644 --- a/website/app/routes/2024-10-05-hackathon-at-sentry.tsx +++ b/website/app/routes/2024-10-05-hackathon-at-sentry.tsx @@ -1,8 +1,9 @@ import { SentryLogoIcon } from '~/modules/components/ui/icons'; -import { EventDetailsPage } from '~/modules/event-details/components'; +import { EventDetailsPage, PhotosSection } from '~/modules/event-details/components'; import { Section } from '~/modules/components/ui/section'; import { meta } from '~/modules/event-details/meta'; import { eventDetailsLoader } from '~/modules/event-details/loader.sever'; +import { useLoaderData } from '@remix-run/react'; export { meta }; @@ -11,15 +12,17 @@ export function loader() { } export default function Component() { + const { event } = useLoaderData(); return ( -
+ {!!event.photos && } +
-
+
-
+
diff --git a/website/app/routes/_index.tsx b/website/app/routes/_index.tsx index 6109108..1b9f074 100644 --- a/website/app/routes/_index.tsx +++ b/website/app/routes/_index.tsx @@ -34,15 +34,28 @@ export async function loader() { const [events, pastEvents] = await Promise.all([getUpcomingEvents(), getPastEvents()]); const highlightEvent = events.find((event) => event.highlightOnLandingPage); const remainingEvents = events.filter((event) => event.id !== highlightEvent?.id); - const photos = pastEvents - .flatMap((event) => event.photos) - .sort(() => 0.5 - Math.random()) - .slice(0, 30); + + let eventPhotos: string[] = []; + let loopCounter = 0; + // Get even number of photos from each event + while(eventPhotos.length < 30) { + const shuffledPastEvents = pastEvents.toSorted(() => Math.random() - 0.5); + for (const event of shuffledPastEvents) { + if (event.photos[loopCounter]) { + eventPhotos.push(event.photos[loopCounter]); + } + if (eventPhotos.length >= 30) { + break; + } + } + loopCounter++; + } + return { highlightEvent, remainingEvents, pastEvents, - postEventImages: photos, + postEventImages: eventPhotos, }; } @@ -124,7 +137,7 @@ export default function Component() { function LandingHero({ images }: { images: string[] }) { return (
-
+
{images.map((imageSrc) => ( ))}