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 (
-
+
);
}
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)}
/>