diff --git a/src/components/ContributionGraph.tsx b/src/components/ContributionGraph.tsx index b3291ee90..5f2c971fd 100644 --- a/src/components/ContributionGraph.tsx +++ b/src/components/ContributionGraph.tsx @@ -1,7 +1,7 @@ // @ts-nocheck "use client"; -import React, { useEffect, useRef, useState } from "react"; +import React, { useEffect, useRef, useState, useMemo } from "react"; import { useAccount } from "@/components/AccountContext"; import CommitSearchPanel from "@/components/CommitSearchPanel"; import type { CommitItem } from "@/lib/github"; @@ -151,9 +151,7 @@ export default function ContributionGraph() { const [error, setError] = useState(null); const [commits, setCommits] = useState([]); const [usesTouchTooltip, setUsesTouchTooltip] = useState(false); - const [repo, setRepo] = useState("all"); - const [repoOptions, setRepoOptions] = useState([]); - + const [selectedRepos, setSelectedRepos] = useState([]); // Compare mode state const [compareMode, setCompareMode] = useState(false); const [compareUser, setCompareUser] = useState(null); @@ -309,7 +307,7 @@ export default function ContributionGraph() { return () => { active = false; }; - }, [days, selectedAccount, customFrom, customTo, customLabel, repo]); + }, [days, selectedAccount, customFrom, customTo, customLabel]); // Fetch friend data when compare mode is on and compareUser changes useEffect(() => { @@ -465,6 +463,10 @@ export default function ContributionGraph() { : []; const displayData = compareMode ? mergedData : data; + const filteredData = useMemo(() => { + if (selectedRepos.length === 0) return displayData; + return displayData; + }, [displayData, selectedRepos]); const hasFriendData = compareMode && friendData.length > 0 && !compareError; const tooltipTrigger = usesTouchTooltip ? "click" : "hover"; const totalCommits = compareMode @@ -508,18 +510,39 @@ export default function ContributionGraph() {
{/* Repo Filter */} - + {/* Dynamic Repository Multi-Select Badges */} +
+ + {repoOptions.map((r) => { + const isSelected = selectedRepos.includes(r); + return ( + + ); + })} +
{/* Range buttons */}
@@ -670,7 +693,7 @@ export default function ContributionGraph() {
{chartType === "bar" ? ( - + ) : chartType === "line" ? ( - + ) : ( - +