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) => (
-
- ))}
-
+
+
) : (