diff --git a/pages/community.page.js b/pages/community.page.js index 904e49ad..1b8bdea6 100644 --- a/pages/community.page.js +++ b/pages/community.page.js @@ -1,27 +1,41 @@ -// Community.js - import React, { useState, useEffect } from "react"; import axios from "axios"; import dynamic from "next/dynamic"; import CommunityCard from "../components/Community/CommunityCard"; -import teamsData from "./data/teamsData"; import { Section } from "../components/UI"; import Footer from "../components/layout/Footer"; const Header = dynamic(() => import("../components/layout/Header")); function Community() { const [contributors, setContributors] = useState([]); + const [searchTerm, setSearchTerm] = useState(""); // State to handle search input + const [filteredContributors, setFilteredContributors] = useState([]); // State for filtered contributors + useEffect(() => { axios .get("https://api.github.com/repos/anmode/grabtern-frontend/contributors") .then((response) => { setContributors(response.data); + setFilteredContributors(response.data); // Initially set filtered data to all contributors }) .catch((error) => { console.error("Got error in fetching contributors detail ", error); }); }, []); + // Filter contributors based on the search term + useEffect(() => { + const filtered = contributors.filter((contributor) => + contributor.login.toLowerCase().includes(searchTerm.toLowerCase()) + ); + setFilteredContributors(filtered); + }, [searchTerm, contributors]); + + // Handle search input change + const handleSearch = (e) => { + setSearchTerm(e.target.value); + }; + return ( <>
@@ -33,24 +47,38 @@ function Community() { align="center" className="tw-mt-10" > + {/* Search Bar */} +
+ +
+ + {/* Display contributors filtered by search */}
- {contributors.map((data, index) => ( - - - - ))} + {filteredContributors.length > 0 ? ( + filteredContributors.map((data, index) => ( + + + + )) + ) : ( +

No contributors found

+ )}