diff --git a/apps/web/app/home/page.tsx b/apps/web/app/home/page.tsx index 84fe068..6a38134 100644 --- a/apps/web/app/home/page.tsx +++ b/apps/web/app/home/page.tsx @@ -6,12 +6,11 @@ import Image from "next/image"; import Link from "next/link"; import { Navbar } from "@/components/layout/navbar"; import { Footer } from "@/components/layout/footer"; +import { UpcomingEventsEmptyState } from "@/components/empty-state/upcoming-events-empty-state"; import CalendarIcon from "@/public/icons/calendar.svg"; import HostingIcon from "@/public/icons/ticket-star.svg"; import PastIcon from "@/public/icons/camera-smile-01.svg"; import BubbleChatIcon from "@/public/icons/bubble-chat.svg"; -import ZeroIcon from "@/public/icons/zero.svg"; -import EmptyStateBg from "@/public/icons/empty-state-bg.svg"; type MyEventsTab = "upcoming" | "hosting" | "past"; type ForYouTab = "discover" | "following"; @@ -57,43 +56,7 @@ interface GridEvent { } // Mock data for My Events (Timeline) -const upcomingEvents: TimelineEvent[] = [ - { - id: 1, - date: "6 Mar, Friday", - day: "Friday", - time: "18:00 - 20:00 UTC", - title: "Stellar Developers Meetup", - location: "Discord", - imageUrl: "/images/event1.png", - isFree: true, - attendees: 24, - status: "going", - }, - { - id: 2, - date: "8 Mar, Sunday", - day: "Sunday", - time: "10:00 - 12:00 UTC", - title: "Web3 Design Workshop", - location: "Lagos, Nigeria", - imageUrl: "/images/event2.png", - isFree: false, - price: "$25.00", - attendees: 156, - }, - { - id: 3, - date: "12 Mar, Thursday", - day: "Thursday", - time: "14:00 - 16:00 UTC", - title: "Blockchain Fundamentals", - location: "Virtual", - imageUrl: "/images/event3.png", - isFree: true, - attendees: 89, - }, -]; +const upcomingEvents: TimelineEvent[] = []; const hostingEvents: TimelineEvent[] = [ { @@ -537,6 +500,7 @@ function GridEventCard({ event }: { event: GridEvent }) { // My Events Section Content function MyEventsContent({ activeTab }: { activeTab: MyEventsTab }) { let events: TimelineEvent[] = []; + const isUpcomingTab = activeTab === "upcoming"; switch (activeTab) { case "upcoming": @@ -551,35 +515,22 @@ function MyEventsContent({ activeTab }: { activeTab: MyEventsTab }) { } if (events.length === 0) { - return ( -
-
- Empty State Background + if (isUpcomingTab) { + return ; + } -
- Nothing Here, Yet -
-
-

Nothing Here, Yet

+ return ( +
+

+ No events found in this section. +

); } return (
- {events.map((event, index) => ( + {events.map((event) => ( ))}
@@ -655,3 +606,4 @@ export default function HomePage() {
); } + diff --git a/apps/web/components/empty-state/upcoming-events-empty-state.tsx b/apps/web/components/empty-state/upcoming-events-empty-state.tsx new file mode 100644 index 0000000..fb90c69 --- /dev/null +++ b/apps/web/components/empty-state/upcoming-events-empty-state.tsx @@ -0,0 +1,76 @@ +"use client"; + +import { motion, useReducedMotion } from "framer-motion"; +import Image from "next/image"; +import { useRouter } from "next/navigation"; +import { Button } from "@/components/ui/button"; +import EmptyStateBg from "@/public/icons/empty-state-bg.svg"; +import ZeroIcon from "@/public/icons/zero.svg"; + +export function UpcomingEventsEmptyState() { + const router = useRouter(); + const shouldReduceMotion = useReducedMotion(); + + return ( + +
+
+
+ +
+ +
+ +
+
+ +

+ Nothing Here, Yet +

+
+ +

+ You don't have any upcoming events right now. Explore what's + happening and grab a ticket for your next event. +

+ + +
+ ); +}