Compare commits

...

4 Commits

Author SHA1 Message Date
pedrooot
d06f7008f4 feat(ui): add interrogations 2025-03-17 19:29:46 +01:00
pedrooot
59d04c74b8 feat(ui): add changes for urls 2025-03-17 19:15:36 +01:00
pedrooot
4f48b309e4 feat(ui): remove tabs 2025-03-17 18:14:03 +01:00
pedrooot
d3a326baab feat(ui): add component CustomProviderInfo 2025-03-17 18:10:35 +01:00
4 changed files with 70 additions and 11 deletions

View File

@@ -8,10 +8,8 @@ import { useForm } from "react-hook-form";
import * as z from "zod";
import { useToast } from "@/components/ui";
import { CustomButton, CustomInput } from "@/components/ui/custom";
import { CustomButton, CustomInput, CustomProviderInfo } from "@/components/ui/custom";
import {
getProviderLogo,
getProviderName,
ProviderType,
} from "@/components/ui/entities";
import { Form } from "@/components/ui/form";
@@ -170,14 +168,9 @@ export const ConnectAccountForm = () => {
{/* Step 2: UID, alias, and credentials (if AWS) */}
{prevStep === 2 && (
<>
<div className="mb-4 flex items-center space-x-4">
{providerType && getProviderLogo(providerType as ProviderType)}
<span className="text-lg font-semibold">
{providerType
? getProviderName(providerType as ProviderType)
: "Unknown Provider"}
</span>
</div>
<CustomProviderInfo
provider={providerType as ProviderType}
/>
<CustomInput
control={form.control}
name="providerUid"

View File

@@ -0,0 +1,35 @@
"use client";
import {
getProviderLogo,
getProviderName,
getProviderVideoLink,
ProviderType,
} from "@/components/ui/entities";
import Link from "next/link";
interface CustomProviderInfoProps {
provider: ProviderType;
}
export const CustomProviderInfo = ({ provider }: CustomProviderInfoProps) => {
return (
<div className="mb-4 flex items-center space-x-4">
{provider && getProviderLogo(provider)}
<span className="text-lg font-semibold">
{provider ? getProviderName(provider) : "Unknown Provider"}
</span>
<p className="align-baseline text-sm text-blue-400">
{provider && (
<Link
href={getProviderVideoLink(provider).link}
target="_blank"
rel="noopener noreferrer"
>
{getProviderVideoLink(provider).text}
</Link>
)}
</p>
</div>
);
};

View File

@@ -7,3 +7,4 @@ export * from "./custom-input";
export * from "./custom-loader";
export * from "./custom-radio";
export * from "./custom-textarea";
export * from "./custom-provider-info";

View File

@@ -38,3 +38,33 @@ export const getProviderName = (provider: ProviderType): string => {
return "Unknown Provider";
}
};
export const getProviderVideoLink = (providerType: ProviderType) => {
switch (providerType) {
case "aws":
return {
text: "How to setup an AWS account?",
link: "https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/prowler-app/#step-41-aws-credentials",
};
case "azure":
return {
text: "How to setup an Azure subscription?",
link: "https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/prowler-app/#step-42-azure-credentials",
};
case "gcp":
return {
text: "How to setup a GCP project?",
link: "https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/prowler-app/#step-43-gcp-credentials",
};
case "kubernetes":
return {
text: "How to setup a Kubernetes cluster?",
link: "https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/prowler-app/#step-44-kubernetes-credentials",
};
default:
return {
text: "How to setup a provider?",
link: "https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/prowler-app/#step-3-add-a-provider",
};
}
};