'use client';
import { useToast } from "@/components/hooks/use-toast";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Separator } from "@/components/ui/separator";
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
import { useDomain } from "@/hooks/useDomain";
import { RepositoryQuery } from "@/lib/types";
import { getCodeHostInfoForRepo, getShortenedNumberDisplayString } from "@/lib/utils";
import clsx from "clsx";
import { FileIcon, Loader2Icon, RefreshCwIcon } from "lucide-react";
import Image from "next/image";
import Link from "next/link";
import { useRouter } from "next/navigation";
import { useMemo } from "react";
interface ProgressIndicatorProps {
numberOfReposWithFirstTimeIndexingJobsInProgress: number;
sampleRepos: RepositoryQuery[];
}
export const ProgressIndicator = ({
numberOfReposWithFirstTimeIndexingJobsInProgress: numRepos,
sampleRepos,
}: ProgressIndicatorProps) => {
const domain = useDomain();
const router = useRouter();
const { toast } = useToast();
if (numRepos === 0) {
return null;
}
const numReposString = getShortenedNumberDisplayString(numRepos);
return (
{`Syncing ${numReposString} ${numRepos === 1 ? 'repository' : 'repositories'}`}