Skip to content

Commit

Permalink
Fix pr #5783: feat(frontend): enhance GitHub repo picker with search …
Browse files Browse the repository at this point in the history
…and sorting
  • Loading branch information
openhands-agent committed Dec 26, 2024
1 parent 89adac2 commit 830c8b7
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 11 deletions.
4 changes: 2 additions & 2 deletions frontend/src/api/github.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<GitHubRepository[]> => {
if (!query.trim()) {
Expand Down
20 changes: 11 additions & 9 deletions frontend/src/components/features/github/github-repo-selector.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,28 @@ export function GitHubRepositorySelector({
const { data: config } = useConfig();
const [selectedKey, setSelectedKey] = React.useState<string | null>(null);
const [searchQuery, setSearchQuery] = React.useState<string>("");
const [searchedRepo, setSearchedRepo] =
React.useState<GitHubRepository | null>(null);
const [searchedRepos, setSearchedRepos] =

Check failure on line 21 in frontend/src/components/features/github/github-repo-selector.tsx

View workflow job for this annotation

GitHub Actions / Lint frontend

Replace `⏎····React.useState<GitHubRepository[]>([]` with `React.useState<GitHubRepository[]>(⏎····[],⏎··`
React.useState<GitHubRepository[]>([]);

React.useEffect(() => {
const searchPublicRepo = async () => {
const repos = await searchPublicRepositories(searchQuery);
setSearchedRepo(repos.length > 0 ? repos[0] : null);
setSearchedRepos(repos);
};

const debounceTimeout = setTimeout(searchPublicRepo, 300);
return () => clearTimeout(debounceTimeout);
}, [searchQuery]);

const finalRepositories = repositories.map((i) => i);
if (searchedRepo && !repositories.find((r) => r.id === searchedRepo.id)) {
finalRepositories.unshift({
...searchedRepo,
fromPublicRepoSearch: true,
});
}
searchedRepos.forEach(repo => {

Check failure on line 35 in frontend/src/components/features/github/github-repo-selector.tsx

View workflow job for this annotation

GitHub Actions / Lint frontend

Replace `repo` with `(repo)`
if (!repositories.find((r) => r.id === repo.id)) {
finalRepositories.unshift({
...repo,
fromPublicRepoSearch: true,
});
}
});

const dispatch = useDispatch();

Expand Down

0 comments on commit 830c8b7

Please sign in to comment.