diff --git a/src/components/leaderboard/TopRepositoriesTable.tsx b/src/components/leaderboard/TopRepositoriesTable.tsx index e19410f9..573dacee 100644 --- a/src/components/leaderboard/TopRepositoriesTable.tsx +++ b/src/components/leaderboard/TopRepositoriesTable.tsx @@ -1,4 +1,10 @@ -import React, { useState, useMemo, useCallback } from 'react'; +import React, { + useState, + useMemo, + useCallback, + useRef, + useEffect, +} from 'react'; import { Box, Card, @@ -256,8 +262,17 @@ const TopRepositoriesTable: React.FC = ({ const [showChart, setShowChart] = useState(false); const [useLogScale, setUseLogScale] = useState(true); + const searchQueryRef = useRef(searchQuery); + useEffect(() => { + searchQueryRef.current = searchQuery; + }); + const handleSearchChange = useCallback( - (value: string) => setFilter('search', value), + (value: string) => { + if (value === searchQueryRef.current) return; + searchQueryRef.current = value; + setFilter('search', value); + }, [setFilter], );