'use client'; import { Carousel, CarouselContent, CarouselItem, } from "@/components/ui/carousel"; import { captureEvent } from "@/hooks/useCaptureEvent"; import { RepositoryQuery } from "@/lib/types"; import { getCodeHostInfoForRepo } from "@/lib/utils"; import { FileIcon } from "@radix-ui/react-icons"; import clsx from "clsx"; import Autoscroll from "embla-carousel-auto-scroll"; import Image from "next/image"; import Link from "next/link"; import { getBrowsePath } from "../browse/hooks/utils"; import { useDomain } from "@/hooks/useDomain"; interface RepositoryCarouselProps { displayRepos: RepositoryQuery[]; numberOfReposWithIndex: number; } export function RepositoryCarousel({ displayRepos, numberOfReposWithIndex, }: RepositoryCarouselProps) { const domain = useDomain(); if (numberOfReposWithIndex === 0) { return (
No repositories found
<> Create a{" "} connection {" "} to start indexing repositories
) } return (
{`${numberOfReposWithIndex} `} {numberOfReposWithIndex > 1 ? 'repositories' : 'repository'} {` indexed`} {displayRepos.map((repo, index) => ( ))} {process.env.NEXT_PUBLIC_SOURCEBOT_CLOUD_ENVIRONMENT === "demo" && (

Interested in using Sourcebot on your code? Check out our{' '} captureEvent('wa_demo_docs_link_pressed', {})} > docs

)}
) } interface RepositoryBadgeProps { repo: RepositoryQuery; } const RepositoryBadge = ({ repo }: RepositoryBadgeProps) => { const domain = useDomain(); const { repoIcon, displayName } = (() => { const info = getCodeHostInfoForRepo({ codeHostType: repo.codeHostType, name: repo.repoName, displayName: repo.repoDisplayName, webUrl: repo.webUrl, }); if (info) { return { repoIcon: {info.codeHostName}, displayName: info.displayName, } } return { repoIcon: , displayName: repo.repoName, } })(); return ( {repoIcon} {displayName} ) }