-
- Featured Events -
-- No events available at the moment. -
-- Upcoming Events -
--
-
- Event 1 - Date -
- Event 2 - Date -
- Event 3 - Date -
diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e06dfc2 --- /dev/null +++ b/.env.example @@ -0,0 +1,2 @@ +NEXT_PUBLIC_RPC_URL= +NEXT_PUBLIC_CONTRACT_ADDRESS= \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json index 1a1ad7a..c9fcf13 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,6 +1,7 @@ { "extends": ["next/core-web-vitals", "next/typescript"], "rules": { - "@next/next/no-img-element": "off" + "@next/next/no-img-element": "off", + "@typescript-eslint/no-explicit-any": "off" } } diff --git a/.gitignore b/.gitignore index f7e1f5a..f9fcfb5 100644 --- a/.gitignore +++ b/.gitignore @@ -26,7 +26,7 @@ yarn-debug.log* yarn-error.log* # local env files -.env* +.env .local # vercel diff --git a/app/events/page.tsx b/app/events/page.tsx index 53ff692..af9b2b2 100644 --- a/app/events/page.tsx +++ b/app/events/page.tsx @@ -1,8 +1,9 @@ 'use client'; -import React, { useEffect, useState, useRef } from 'react'; +import React, { useEffect, useState, useRef, Suspense } from 'react'; import { useRouter } from 'next/navigation'; // Import useRouter for routing import Header from '../../components/custom/header'; import Footer from '../../components/custom/footer'; +import { useSearchParams } from 'next/navigation'; interface Event { EventID: number; @@ -80,6 +81,19 @@ const EventsPage: React.FC = () => { setFilteredEvents(eventsData); }, []); + const SearchBox = () => { + setSearchQuery(useSearchParams().get('q') || ''); + return ( + setSearchQuery(e.target.value)} + className="search-bar mt-4 p-2 border border-gray-300 rounded w-full max-w-md" + /> + ); + }; + useEffect(() => { let filtered = events.filter((event) => ['name', 'date', 'location', 'description', 'host'].some((key) => @@ -166,13 +180,20 @@ const EventsPage: React.FC = () => {
- No events available at the moment. -
-