'use client'; import Image from "next/image"; import { useState } from "react"; import { cn, CodeHostType } from "@/lib/utils"; import { getCodeHostIcon } from "@/lib/utils"; import { GitHubConnectionCreationForm, GitLabConnectionCreationForm, GiteaConnectionCreationForm, GerritConnectionCreationForm } from "@/app/[domain]/components/connectionCreationForms"; import { useRouter } from "next/navigation"; import { useCallback } from "react"; import { OnboardingSteps } from "@/lib/constants"; import { Button } from "@/components/ui/button"; import useCaptureEvent from "@/hooks/useCaptureEvent"; interface ConnectCodeHostProps { nextStep: OnboardingSteps; } export const ConnectCodeHost = ({ nextStep }: ConnectCodeHostProps) => { const [selectedCodeHost, setSelectedCodeHost] = useState(null); const router = useRouter(); const onCreated = useCallback(() => { router.push(`?step=${nextStep}`); }, [nextStep, router]); if (!selectedCodeHost) { return ( ) } if (selectedCodeHost === "github") { return ( ) } if (selectedCodeHost === "gitlab") { return ( ) } if (selectedCodeHost === "gitea") { return ( ) } if (selectedCodeHost === "gerrit") { return ( ) } return null; } interface CodeHostSelectionProps { onSelect: (codeHost: CodeHostType) => void; } const CodeHostSelection = ({ onSelect }: CodeHostSelectionProps) => { return (
onSelect("github")} /> onSelect("gitlab")} /> onSelect("gitea")} /> onSelect("gerrit")} />
) } interface CodeHostButtonProps { name: string; logo: { src: string, className?: string }; onClick: () => void; } const CodeHostButton = ({ name, logo, onClick, }: CodeHostButtonProps) => { const captureEvent = useCaptureEvent(); return ( ) }