'use client'; import { Carousel, CarouselContent, CarouselItem, } from "@/components/ui/carousel"; import Autoscroll from "embla-carousel-auto-scroll"; import { getRepoCodeHostInfo } from "@/lib/utils"; import Image from "next/image"; import { FileIcon } from "@radix-ui/react-icons"; import clsx from "clsx"; import { Repository } from "@/lib/types"; interface RepositoryCarouselProps { repos: Repository[]; } export const RepositoryCarousel = ({ repos, }: RepositoryCarouselProps) => { return ( {repos.map((repo, index) => ( ))} ) }; interface RepositoryBadgeProps { repo: Repository; } const RepositoryBadge = ({ repo }: RepositoryBadgeProps) => { const { repoIcon, displayName, repoLink } = (() => { const info = getRepoCodeHostInfo(repo); if (info) { return { repoIcon: {info.codeHostName}, displayName: info.displayName, repoLink: info.repoLink, } } return { repoIcon: , displayName: repo.Name, repoLink: undefined, } })(); return (
{ if (repoLink !== undefined) { window.open(repoLink, "_blank"); } }} className={clsx("flex flex-row items-center gap-2 border rounded-md p-2 text-clip", { "cursor-pointer": repoLink !== undefined, })} > {repoIcon} {displayName}
) }