From da120c3aa6a9898e31a7fa891be04aca0d35dd30 Mon Sep 17 00:00:00 2001 From: Harsheel Singh Date: Wed, 17 Jul 2024 18:23:48 +1200 Subject: [PATCH] chore: Restored Events Page --- web/src/components/EventCard.tsx | 43 --- .../components/__tests__/EventCard.test.tsx | 23 -- web/src/pages/Event.tsx | 79 +---- web/src/pages/Home.tsx | 327 ++++++++++-------- web/src/pages/__tests__/Event.test.tsx | 90 ----- 5 files changed, 180 insertions(+), 382 deletions(-) delete mode 100644 web/src/components/EventCard.tsx delete mode 100644 web/src/components/__tests__/EventCard.test.tsx delete mode 100644 web/src/pages/__tests__/Event.test.tsx diff --git a/web/src/components/EventCard.tsx b/web/src/components/EventCard.tsx deleted file mode 100644 index 1ca6928..0000000 --- a/web/src/components/EventCard.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { EventCardProps } from "../utils/FrontendTypes"; - -export default function EventCard({ event }: EventCardProps) { - const { name, date, description, image } = event; - - // Create a date object for the event - const eventDate = new Date(date); - const currentDate = new Date(); - - // Determine if the event is upcoming, happening today, or past - const isToday = eventDate.toDateString() === currentDate.toDateString(); - const isUpcoming = eventDate > currentDate; - const statusText = isToday ? "Happening Today" : isUpcoming ? "Upcoming Event" : "Passed"; - - // Format the event date - const eventMonth = eventDate.toLocaleString("default", { month: "long" }); - const eventDay = eventDate.getDate(); - - return ( - <> -
-
- Background Image -
- {statusText} -
-
- -
-
-

{eventMonth}

-

{eventDay}

-
- -
-

{name}

-

{description}

-
-
-
- - ); -} diff --git a/web/src/components/__tests__/EventCard.test.tsx b/web/src/components/__tests__/EventCard.test.tsx deleted file mode 100644 index fbc1205..0000000 --- a/web/src/components/__tests__/EventCard.test.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { render, screen } from "@testing-library/react"; -import "@testing-library/jest-dom"; -import EventCard from "../EventCard"; -import eventBackground from "../../assets/event.jpg"; -import { EventType } from "../../utils/FrontendTypes"; - -describe("Event Card Component", () => { - const event: EventType = { - name: "Event 1", - date: "2024-01-01", - description: "Event 1 Description", - image: eventBackground, - }; - - it("Renders the EventCard component with correct details", () => { - render(); - - expect(screen.getByText("1")).toBeInTheDocument(); - expect(screen.getByText("January")).toBeInTheDocument(); - expect(screen.getByText("Event 1")).toBeInTheDocument(); - expect(screen.getByText("Event 1 Description")).toBeInTheDocument(); - }); -}); diff --git a/web/src/pages/Event.tsx b/web/src/pages/Event.tsx index dac7f55..3a2f599 100644 --- a/web/src/pages/Event.tsx +++ b/web/src/pages/Event.tsx @@ -1,84 +1,7 @@ -import Navbar from "../components/Navbar"; -import Footer from "../components/Footer"; -import { useState, useEffect } from "react"; -import cupcake from "../assets/cupcake.svg"; -import EventCard from "../components/EventCard"; -import axios from "axios"; -import { EventType } from "../utils/FrontendTypes"; - export default function Event() { - const [searchQuery, setSearchQuery] = useState(""); - const [events, setEvents] = useState([]); - const [displayedEvents, setDisplayedEvents] = useState([]); - - useEffect(() => { - async function fetchEvents() { - try { - const response = await axios.get("http://localhost:4000/api/events/"); - setEvents(response.data); - setDisplayedEvents(response.data); - } catch (error) { - console.error("Error fetching event data", error); - } - } - fetchEvents(); - }, []); - - const handleSearchChange = (e: React.ChangeEvent) => { - const query = e.target.value.toLowerCase(); - setSearchQuery(query); - - // Filter events based on the search query - const filteredEvents = events.filter((event) => event.name.toLowerCase().includes(query)); - setDisplayedEvents(filteredEvents); - }; - return ( <> - - -
-
-
-

- Events -

- -
- Cupcake -
-
- -
- -
-
- -
- {displayedEvents.length > 0 ? ( - displayedEvents.map((event, index) => ( -
- -
- )) - ) : ( -

- Sorry, no events found for "{searchQuery}" -

- )} -
-
- -