From ddf6df6a18c54e4423cdc9548bb81156ef8c48ad Mon Sep 17 00:00:00 2001 From: Bhav Beri Date: Wed, 30 Oct 2024 18:20:32 +0530 Subject: [PATCH] Fixed EventsGrid --- src/components/events/EventCard.jsx | 1 - src/components/events/EventsGrid.jsx | 154 +++++++++++------------ src/components/events/EventsGridPage.jsx | 37 ------ 3 files changed, 71 insertions(+), 121 deletions(-) delete mode 100644 src/components/events/EventsGridPage.jsx diff --git a/src/components/events/EventCard.jsx b/src/components/events/EventCard.jsx index e8e60e78..1a144251 100644 --- a/src/components/events/EventCard.jsx +++ b/src/components/events/EventCard.jsx @@ -6,7 +6,6 @@ import Link from "next/link"; import { Box, Card, CardActionArea, Typography, Stack } from "@mui/material"; import EventPoster from "components/events/EventPoster"; -// import EventFallbackPoster from "components/events/EventFallbackPoster"; const DateTime = dynamic(() => import("components/DateTime"), { ssr: false }); diff --git a/src/components/events/EventsGrid.jsx b/src/components/events/EventsGrid.jsx index d9188eca..8381c8ad 100644 --- a/src/components/events/EventsGrid.jsx +++ b/src/components/events/EventsGrid.jsx @@ -5,95 +5,83 @@ import { GET_CLUB } from "gql/queries/clubs"; import { Grid, Typography } from "@mui/material"; import EventCard from "components/events/EventCard"; - export default async function EventsGrid({ - type = "all", // must be one of: {recent, club, all} - clubid = null, - limit = undefined, - filter = () => true, - events = null, + type = "all", // must be one of: {recent, club, all} + clubid = null, + limit = undefined, + filter = () => true, + events = null, }) { - let data; - if (events) { - data = { data: { events } }; - } else { - data = await getClient().query(...constructQuery({ type, clubid, limit })); - } + let data; + if (events) { + data = { data: { events } }; + } else { + data = await getClient().query(...constructQuery({ type, clubid, limit })); + } - const updatedEvents = await Promise.all( - data?.data?.events?.map(async (event) => { - if (!event.poster || event.poster == null) { - const { data: { club } = {} } = await getClient().query(GET_CLUB, { - clubInput: { cid: event?.clubid }, - }); - event.clubbanner = club?.banner || null; - } - return event; - }) - ); + const updatedEvents = await Promise.all( + data?.data?.events?.map(async (event) => { + if (!event.poster || event.poster == null) { + const { data: { club } = {} } = await getClient().query(GET_CLUB, { + clubInput: { cid: event?.clubid }, + }); + event.clubbanner = club?.banner || club?.logo; + } + return event; + }) + ); - return ( - - {updatedEvents?.filter(filter).length ? ( - updatedEvents - ?.slice(0, limit) - ?.filter(filter) - ?.map((event) => ( - - - - )) - ) : ( - - No events found. - - )} - - ); + return ( + + {updatedEvents?.filter(filter).length ? ( + updatedEvents + ?.slice(0, limit) + ?.filter(filter) + ?.map((event) => ( + + + + )) + ) : ( + + No events found. + + )} + + ); } // construct graphql query based on type function constructQuery({ type, clubid, limit }) { - if (type === "recent") { - return [ - GET_ALL_EVENTS, - { - clubid: null, - limit: limit || 12, - public: true, - }, - ]; - } else if (type === "club") { - return [ - GET_CLUB_EVENTS, - { - clubid, - clubInput: { - cid: clubid, - }, - public: true, - }, - ]; - } else if (type === "all") { - return [ - GET_ALL_EVENTS, - { - clubid: null, - public: true, - }, - ]; - } else { - throw new Error("Invalid event type"); - } + if (type === "recent") { + return [ + GET_ALL_EVENTS, + { + clubid: null, + limit: limit || 12, + public: true, + }, + ]; + } else if (type === "club") { + return [ + GET_ALL_EVENTS, + { + clubid, + public: true, + }, + ]; + } else { + throw new Error("Invalid event type"); + } } diff --git a/src/components/events/EventsGridPage.jsx b/src/components/events/EventsGridPage.jsx deleted file mode 100644 index 3ec3781b..00000000 --- a/src/components/events/EventsGridPage.jsx +++ /dev/null @@ -1,37 +0,0 @@ -import { Grid, Typography } from "@mui/material"; -import EventCard from "components/events/EventCard"; - -export default async function EventsGrid({ - type = "all", // must be one of: {recent, club, all} - limit = undefined, - events = null, - loading = false, -}) { - - return ( - - {events?.length ? ( - events?.map((event) => ( - - - - )) - ) : ( - - {loading ? "Loading..." : "No events found."} - - )} - - ); -} \ No newline at end of file