mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-05-06 08:47:18 +00:00
d23c2f3b53
Co-authored-by: Pablo F.G <pablo.fernandez@prowler.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
60 lines
1.4 KiB
TypeScript
60 lines
1.4 KiB
TypeScript
"use client";
|
|
|
|
import { useRouter } from "next/navigation";
|
|
import { ReactNode } from "react";
|
|
|
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/shadcn";
|
|
|
|
import { PROVIDER_TAB, type ProviderTab } from "./provider-page-tabs.shared";
|
|
|
|
interface ProviderPageTabsProps {
|
|
activeTab: ProviderTab;
|
|
providersContent: ReactNode;
|
|
providerGroupsContent: ReactNode;
|
|
}
|
|
|
|
export const ProviderPageTabs = ({
|
|
activeTab,
|
|
providersContent,
|
|
providerGroupsContent,
|
|
}: ProviderPageTabsProps) => {
|
|
const router = useRouter();
|
|
|
|
const handleTabChange = (tab: string) => {
|
|
const typedTab = tab as ProviderTab;
|
|
|
|
if (typedTab === activeTab) {
|
|
return;
|
|
}
|
|
|
|
if (typedTab === PROVIDER_TAB.PROVIDERS) {
|
|
router.push("/providers");
|
|
} else {
|
|
router.push(`/providers?tab=${typedTab}`);
|
|
}
|
|
};
|
|
|
|
return (
|
|
<Tabs
|
|
value={activeTab}
|
|
onValueChange={handleTabChange}
|
|
className="flex w-full flex-col gap-6"
|
|
>
|
|
<TabsList>
|
|
<TabsTrigger value={PROVIDER_TAB.PROVIDERS}>Providers</TabsTrigger>
|
|
<TabsTrigger value={PROVIDER_TAB.PROVIDER_GROUPS}>
|
|
Provider Groups
|
|
</TabsTrigger>
|
|
</TabsList>
|
|
|
|
<TabsContent value={PROVIDER_TAB.PROVIDERS} className="mt-0">
|
|
{providersContent}
|
|
</TabsContent>
|
|
|
|
<TabsContent value={PROVIDER_TAB.PROVIDER_GROUPS} className="mt-0">
|
|
{providerGroupsContent}
|
|
</TabsContent>
|
|
</Tabs>
|
|
);
|
|
};
|