"use client"; import { Divider } from "@nextui-org/react"; import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"; import { Control } from "react-hook-form"; import { CustomButton } from "@/components/ui/custom"; import { Form } from "@/components/ui/form"; import { useCredentialsForm } from "@/hooks/use-credentials-form"; import { ProviderCredentialFields } from "@/lib/provider-credentials/provider-credential-fields"; import { AWSCredentials, AWSCredentialsRole, AzureCredentials, GCPDefaultCredentials, GCPServiceAccountKey, KubernetesCredentials, M365Credentials, ProviderType, } from "@/types"; import { ProviderTitleDocs } from "../provider-title-docs"; import { AWSStaticCredentialsForm } from "./select-credentials-type/aws/credentials-type"; import { AWSRoleCredentialsForm } from "./select-credentials-type/aws/credentials-type/aws-role-credentials-form"; import { GCPDefaultCredentialsForm } from "./select-credentials-type/gcp/credentials-type"; import { GCPServiceAccountKeyForm } from "./select-credentials-type/gcp/credentials-type/gcp-service-account-key-form"; import { AzureCredentialsForm } from "./via-credentials/azure-credentials-form"; import { KubernetesCredentialsForm } from "./via-credentials/k8s-credentials-form"; import { M365CredentialsForm } from "./via-credentials/m365-credentials-form"; type BaseCredentialsFormProps = { providerType: ProviderType; providerId: string; onSubmit: (formData: FormData) => Promise; successNavigationUrl: string; submitButtonText?: string; showBackButton?: boolean; }; export const BaseCredentialsForm = ({ providerType, providerId, onSubmit, successNavigationUrl, submitButtonText = "Next", showBackButton = true, }: BaseCredentialsFormProps) => { const { form, isLoading, handleSubmit, handleBackStep, searchParamsObj, externalId, } = useCredentialsForm({ providerType, providerId, onSubmit, successNavigationUrl, }); return (
{providerType === "aws" && searchParamsObj.get("via") === "role" && ( } setValue={form.setValue as any} externalId={externalId} /> )} {providerType === "aws" && searchParamsObj.get("via") !== "role" && ( } /> )} {providerType === "azure" && ( } /> )} {providerType === "m365" && ( } /> )} {providerType === "gcp" && searchParamsObj.get("via") === "service-account" && ( } /> )} {providerType === "gcp" && searchParamsObj.get("via") !== "service-account" && ( } /> )} {providerType === "kubernetes" && ( } /> )}
{showBackButton && (searchParamsObj.get("via") === "credentials" || searchParamsObj.get("via") === "role" || searchParamsObj.get("via") === "service-account") && ( } isDisabled={isLoading} > Back )} } > {isLoading ? <>Loading : {submitButtonText}}
); };