diff --git a/frontend/components/integrations/CloudIntegration.tsx b/frontend/components/integrations/CloudIntegration.tsx index f3e5988527..e59d58a505 100644 --- a/frontend/components/integrations/CloudIntegration.tsx +++ b/frontend/components/integrations/CloudIntegration.tsx @@ -6,7 +6,7 @@ import { faX, } from "@fortawesome/free-solid-svg-icons"; -interface CloudIntegration { +interface Props { integration: IntegrationOption; setSelectedIntegrationOption: () => void; integrationOptionPress: () => void; @@ -27,7 +27,7 @@ const CloudIntegration = ({ integrationOptionPress, deleteIntegrationAuth, authorizations -}: CloudIntegration) => { +}: Props) => { return (
void; + integrationOptionPress: () => void; + deleteIntegrationAuth: () => void; + authorizations: any; +} + +const CloudIntegrationSection = ({ + projectIntegrations, + integrations, + setSelectedIntegrationOption, + integrationOptionPress, + deleteIntegrationAuth, + authorizations +}: Props) => { + return ( + <> +
0 ? 'mt-12' : 'mt-6'} text-xl max-w-5xl px-2`}> +

Cloud Integrations

+

+ Click on an integration to begin syncing secrets to it. +

+
+
+ {integrations.map((integration) => ( + + ))} +
+ + ); +} + +export default CloudIntegrationSection; \ No newline at end of file diff --git a/frontend/components/integrations/FrameworkIntegrationSection.tsx b/frontend/components/integrations/FrameworkIntegrationSection.tsx new file mode 100644 index 0000000000..0884d97053 --- /dev/null +++ b/frontend/components/integrations/FrameworkIntegrationSection.tsx @@ -0,0 +1,33 @@ +import React from "react"; +import FrameworkIntegration from "./FrameworkIntegration"; + +interface Framework { + name: string; + image: string; + link: string; +} + +interface Props { + framework: Framework +} + +const FrameworkIntegrationSection = ({ frameworks }: Props) => { + return ( + <> +
+

Framework Integrations

+

+ Click on a framework to get the setup instructions. +

+
+
+ {frameworks.map((framework) => ( + + ))} +
+ + ); +} + +export default FrameworkIntegrationSection; + diff --git a/frontend/components/integrations/ProjectIntegrationSection.tsx b/frontend/components/integrations/ProjectIntegrationSection.tsx new file mode 100644 index 0000000000..be8f9f8d77 --- /dev/null +++ b/frontend/components/integrations/ProjectIntegrationSection.tsx @@ -0,0 +1,30 @@ +import React from "react"; +import Integration from "./Integration"; +import guidGenerator from "~/utilities/randomId"; + +interface Props { + projectIntegrations: any +} + +const ProjectIntegrationSection = ({ + projectIntegrations +}: Props) => { + return ( + <> +
+

Current Project Integrations

+

+ Manage your integrations of Infisical with third-party services. +

+
+ {projectIntegrations.map((projectIntegration) => ( + + ))} + + ); +} + +export default ProjectIntegrationSection; \ No newline at end of file diff --git a/frontend/pages/integrations/[id].js b/frontend/pages/integrations/[id].js index a301deda7d..a6b06321d1 100644 --- a/frontend/pages/integrations/[id].js +++ b/frontend/pages/integrations/[id].js @@ -4,8 +4,9 @@ import Image from "next/image"; import { useRouter } from "next/router"; import NavHeader from "~/components/navigation/NavHeader"; import Integration from "~/components/integrations/Integration"; -import FrameworkIntegration from "~/components/integrations/FrameworkIntegration"; -import CloudIntegration from "~/components/integrations/CloudIntegration"; +import FrameworkIntegrationSection from "~/components/integrations/FrameworkIntegrationSection"; +import CloudIntegrationSection from "~/components/integrations/CloudIntegrationSection"; +import ProjectIntegrationSection from "~/components/integrations/ProjectIntegrationSection"; import guidGenerator from "~/utilities/randomId"; import { frameworks @@ -180,50 +181,21 @@ export default function Integrations() { handleBotActivate={handleBotActivate} handleIntegrationOption={handleIntegrationOption} /> + {projectIntegrations.length > 0 && ( - <> -
-

Current Project Integrations

-

- Manage your integrations of Infisical with third-party services. -

-
- {projectIntegrations.map((projectIntegration) => ( - - ))} - + )} -
0 ? 'mt-12' : 'mt-6'} text-xl max-w-5xl px-2`}> -

Cloud Integrations

-

- Click on an integration to begin syncing secrets to it. -

-
-
- {integrations.map((integration) => ( - - ))} -
-
-

Framework Integrations

-

- Click on a framework to get the setup instructions. -

-
-
- {frameworks.map((framework) => ( - - ))} -
+ +
) : (