'use client'; import { useState } from "react"; import { 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 { BackButton } from "./onboardBackButton"; import { CodeHostIconButton } from "../../components/codeHostIconButton"; 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]); const onBack = useCallback(() => { setSelectedCodeHost(null); }, []); 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) => { const captureEvent = useCaptureEvent(); return (
{ onSelect("github"); captureEvent("wa_onboard_github_selected", {}); }} /> { onSelect("gitlab"); captureEvent("wa_onboard_gitlab_selected", {}); }} /> { onSelect("gitea"); captureEvent("wa_onboard_gitea_selected", {}); }} /> { onSelect("gerrit"); captureEvent("wa_onboard_gerrit_selected", {}); }} />
) }