diff --git a/app/layout.tsx b/app/layout.tsx
index cbf2d066..271723fc 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -6,6 +6,10 @@ import { getServerSession } from "next-auth/next";
import { authOptions } from "@/app/api/auth/[...nextauth]/route";
import { Providers } from "@/components/providers";
import { LayoutWrapper } from "@/components/layout/layout-wrapper";
+import { Navbar } from "@/components/navbar";
+import { ThemeProvider } from "@/components/theme-provider";
+import { Toaster } from "@/components/ui/toaster";
+import { redirect } from "next/navigation";
const inter = Inter({ subsets: ["latin"] });
@@ -15,21 +19,26 @@ export default async function RootLayout({
children: React.ReactNode;
}) {
const session = await getServerSession(authOptions);
- const headersList = headers();
- const pathname = headersList.get("x-pathname") || "";
- const isSignInPage = pathname === "/signin";
+
+ if (!session) {
+ redirect("/signin");
+ }
return (
-
-
-
-
+
+
+
+
+
{children}
-
-
+
+
+
);
diff --git a/components/crm/crm-frame.tsx b/components/crm/crm-frame.tsx
new file mode 100644
index 00000000..26a9e2f1
--- /dev/null
+++ b/components/crm/crm-frame.tsx
@@ -0,0 +1,12 @@
+"use client";
+
+import { IframeContainer } from "@/components/shared/iframe-container";
+
+export function CrmFrame() {
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/components/flow/flow-frame.tsx b/components/flow/flow-frame.tsx
index 4b3da7c0..4095a1a3 100644
--- a/components/flow/flow-frame.tsx
+++ b/components/flow/flow-frame.tsx
@@ -1,14 +1,12 @@
"use client";
+import { IframeContainer } from "@/components/shared/iframe-container";
+
export function FlowFrame() {
return (
-
-
-
+
);
}
\ No newline at end of file
diff --git a/components/gitlab/gitlab-frame.tsx b/components/gitlab/gitlab-frame.tsx
index 42bb2076..2d287aae 100644
--- a/components/gitlab/gitlab-frame.tsx
+++ b/components/gitlab/gitlab-frame.tsx
@@ -1,14 +1,12 @@
"use client";
-export function GitLabFrame() {
+import { IframeContainer } from "@/components/shared/iframe-container";
+
+export function GitlabFrame() {
return (
-
-
-
+
);
}
\ No newline at end of file
diff --git a/components/shared/iframe-container.tsx b/components/shared/iframe-container.tsx
new file mode 100644
index 00000000..b9f96bcc
--- /dev/null
+++ b/components/shared/iframe-container.tsx
@@ -0,0 +1,20 @@
+"use client";
+
+interface IframeContainerProps {
+ src: string;
+ title: string;
+}
+
+export function IframeContainer({ src, title }: IframeContainerProps) {
+ return (
+
+
+
+ );
+}
\ No newline at end of file