diff --git a/frontend/src/api/github.ts b/frontend/src/api/github.ts index 2e3dff06a3c8..fc50493b6591 100644 --- a/frontend/src/api/github.ts +++ b/frontend/src/api/github.ts @@ -106,8 +106,8 @@ export const retrieveGitHubUser = async () => { export const searchPublicRepositories = async ( query: string, - per_page = 1, - sort: "" | "updated" | "stars" | "forks" = "", + per_page = 5, + sort: "" | "updated" | "stars" | "forks" = "stars", order: "desc" | "asc" = "desc", ): Promise => { if (!query.trim()) { diff --git a/frontend/src/components/features/github/github-repo-selector.tsx b/frontend/src/components/features/github/github-repo-selector.tsx index de6ea3d1f542..df5f5240e819 100644 --- a/frontend/src/components/features/github/github-repo-selector.tsx +++ b/frontend/src/components/features/github/github-repo-selector.tsx @@ -18,13 +18,13 @@ export function GitHubRepositorySelector({ const { data: config } = useConfig(); const [selectedKey, setSelectedKey] = React.useState(null); const [searchQuery, setSearchQuery] = React.useState(""); - const [searchedRepo, setSearchedRepo] = - React.useState(null); + const [searchedRepos, setSearchedRepos] = + React.useState([]); React.useEffect(() => { const searchPublicRepo = async () => { const repos = await searchPublicRepositories(searchQuery); - setSearchedRepo(repos.length > 0 ? repos[0] : null); + setSearchedRepos(repos); }; const debounceTimeout = setTimeout(searchPublicRepo, 300); @@ -32,12 +32,14 @@ export function GitHubRepositorySelector({ }, [searchQuery]); const finalRepositories = repositories.map((i) => i); - if (searchedRepo && !repositories.find((r) => r.id === searchedRepo.id)) { - finalRepositories.unshift({ - ...searchedRepo, - fromPublicRepoSearch: true, - }); - } + searchedRepos.forEach(repo => { + if (!repositories.find((r) => r.id === repo.id)) { + finalRepositories.unshift({ + ...repo, + fromPublicRepoSearch: true, + }); + } + }); const dispatch = useDispatch();