diff --git a/app/page.tsx b/app/page.tsx index 977af48..72fd377 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -3,7 +3,12 @@ import Layout from "@/components/Layout"; export default function Home() { return ( -
+
+
+

Heading 1

+

Heading 2

+
+
); } diff --git a/components/Footer.tsx b/components/Footer.tsx new file mode 100644 index 0000000..e0aa6ef --- /dev/null +++ b/components/Footer.tsx @@ -0,0 +1,7 @@ +export default function Footer() { + return ( + + ); +} diff --git a/components/Layout.tsx b/components/Layout.tsx index 6169224..b00ccfa 100644 --- a/components/Layout.tsx +++ b/components/Layout.tsx @@ -1,4 +1,5 @@ import Navbar from "@/components/Navbar"; +import Footer from "@/components/Footer"; export default function Layout({ children, // will be a page or nested layout @@ -6,9 +7,10 @@ export default function Layout({ children: React.ReactNode; }) { return ( -
+
{children} +
); } diff --git a/components/TournamentTable.tsx b/components/TournamentTable.tsx index 44c205c..389293b 100644 --- a/components/TournamentTable.tsx +++ b/components/TournamentTable.tsx @@ -1,9 +1,24 @@ +"use client"; + import { Tournament, TournamentTableProps } from "@/types"; +import { useEffect, useState } from "react"; export default function TournamentTable({ tournamentData, }: TournamentTableProps) { - const tournaments = tournamentData.map((t: Tournament) => ( + const [tournamentFilter, setTournamentFilter] = useState(""); // text from search bar + const [filteredTournamentData, setFilteredTournamentData] = + useState(tournamentData); + + useEffect(() => { + setFilteredTournamentData( + tournamentData.filter((t) => + t.location.includes(tournamentFilter.toUpperCase()) + ) + ); + }, [tournamentFilter]); + + const tournaments = filteredTournamentData.map((t: Tournament) => ( -
+
@@ -35,9 +50,9 @@ export default function TournamentTable({ xmlns="http://www.w3.org/2000/svg" >
@@ -46,6 +61,8 @@ export default function TournamentTable({ id="table-search" className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-80 pl-10 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" placeholder="Search for items" + value={tournamentFilter} + onChange={(e) => setTournamentFilter(e.target.value)} />