diff --git a/client/src/pages/games/[id].tsx b/client/src/pages/games/[id].tsx index 5c11078..b22dd7d 100644 --- a/client/src/pages/games/[id].tsx +++ b/client/src/pages/games/[id].tsx @@ -5,6 +5,7 @@ import { SocialIcon } from "react-social-icons"; import { GameEmbed } from "@/components/ui/GameEmbed"; import { ItchEmbed } from "@/components/ui/ItchEmbed"; +import { useEvent } from "@/hooks/useEvent"; import { useGame } from "@/hooks/useGames"; export default function IndividualGamePage() { @@ -17,6 +18,9 @@ export default function IndividualGamePage() { error, isError, } = useGame(router.isReady ? id : undefined); + const { data: eventData } = useEvent( + game?.event ? String(game.event) : undefined, + ); if (isPending) { return ( @@ -55,6 +59,8 @@ export default function IndividualGamePage() { const gameEmbedID = game.itchGameEmbedID; const gameWidth = game.itchGameWidth; const gameHeight = game.itchGameHeight; + const eventID = game.event; + const eventName = eventData?.name || ""; const completionLabels: Record = { 1: "WIP", @@ -65,8 +71,6 @@ export default function IndividualGamePage() { const devStage = completionLabels[game.completion] ?? "Stage Unknown"; - // TODO ADD EVENT - const event = "Game Jam November 2025"; // TODO ADD ARTIMAGES const artImages: { src: string; alt: string }[] = []; // const artImages = [ @@ -173,7 +177,20 @@ export default function IndividualGamePage() { Event - {event} + + {eventID && eventName ? ( + + {eventName} + + ) : ( + + No past/upcoming event + + )} + diff --git a/server/game_dev/views.py b/server/game_dev/views.py index 086119c..751d4a4 100644 --- a/server/game_dev/views.py +++ b/server/game_dev/views.py @@ -60,7 +60,16 @@ class EventDetailAPIView(generics.RetrieveAPIView): lookup_url_kwarg = "id" def get_queryset(self): - return Event.objects.filter(id=self.kwargs["id"]) + now = timezone.now().date() + return Event.objects.filter(id=self.kwargs["id"], publicationDate__lte=now) + + def get_object(self): + queryset = self.get_queryset() + try: + return queryset.get() + except Event.DoesNotExist: + from rest_framework.exceptions import NotFound + raise NotFound(detail="The event is not yet published by admin or does not exist.") class GameshowcaseAPIView(APIView):