diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ffeb76f..165c13ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed +- Fixes bug with repos not being visible in the homepage carousel when re-indexing. [#294](https://github.com/sourcebot-dev/sourcebot/pull/294) + ### Added - Added special `*` value for `rev:` to allow searching across all branches. [#281](https://github.com/sourcebot-dev/sourcebot/pull/281) diff --git a/packages/web/src/app/[domain]/components/repositorySnapshot.tsx b/packages/web/src/app/[domain]/components/repositorySnapshot.tsx index 486795ef..c205b2da 100644 --- a/packages/web/src/app/[domain]/components/repositorySnapshot.tsx +++ b/packages/web/src/app/[domain]/components/repositorySnapshot.tsx @@ -15,14 +15,24 @@ import { } from "@/components/ui/carousel"; import { RepoIndexingStatus } from "@sourcebot/db"; import { SymbolIcon } from "@radix-ui/react-icons"; +import { RepositoryQuery } from "@/lib/types"; -export function RepositorySnapshot({ authEnabled }: { authEnabled: boolean }) { +interface RepositorySnapshotProps { + authEnabled: boolean; + repos: RepositoryQuery[]; +} + +export function RepositorySnapshot({ + authEnabled, + repos: initialRepos, +}: RepositorySnapshotProps) { const domain = useDomain(); const { data: repos, isPending, isError } = useQuery({ queryKey: ['repos', domain], queryFn: () => unwrapServiceError(getRepos(domain)), refetchInterval: env.NEXT_PUBLIC_POLLING_INTERVAL_MS, + placeholderData: initialRepos, }); if (isPending || isError || !repos) { @@ -33,22 +43,30 @@ export function RepositorySnapshot({ authEnabled }: { authEnabled: boolean }) { ) } - const numIndexedRepos = repos.filter((repo) => repo.repoIndexingStatus === RepoIndexingStatus.INDEXED).length; - const numIndexingRepos = repos.filter((repo) => repo.repoIndexingStatus === RepoIndexingStatus.INDEXING || repo.repoIndexingStatus === RepoIndexingStatus.IN_INDEX_QUEUE).length; - if (numIndexedRepos === 0 && numIndexingRepos > 0) { - return ( -