"use client"; import { TournamentDataProps } from "@/types"; import { useEffect, useState } from "react"; import { useTranslations } from "next-intl"; import SearchBar from "./SearchBar"; import ScrollToTopButton from "./ScrollToTopButton"; export default function TournamentTable({ tournamentData, }: TournamentDataProps) { let tableData; const t = useTranslations("Tournaments"); const [searchQuery, setSearchQuery] = useState(""); // text from search bar const [filteredTournamentData, setFilteredTournamentData] = useState(tournamentData); useEffect(() => { setFilteredTournamentData( tournamentData.filter((t) => t.town.includes(searchQuery.toUpperCase())) ); }, [searchQuery, tournamentData]); // TODO move this section into its own function if (filteredTournamentData.length === 0) { tableData = ( {t("noneFound")} ); } else { tableData = filteredTournamentData.map((data) => ( {data.date} {data.town} {data.tournament} {data.time_control} )); } return (
{tableData}
{t("date")} {t("town")} {t("tournament")} {t("timeControl")}
); }