diff --git a/app/src/app/layout.tsx b/app/src/app/layout.tsx
index 5b89b27..e2c2539 100644
--- a/app/src/app/layout.tsx
+++ b/app/src/app/layout.tsx
@@ -1,5 +1,6 @@
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
+import { ThemeProvider } from "next-themes";
import { TooltipProvider } from "@/components/ui/tooltip";
import { Toaster } from "@/components/ui/sonner";
import "./globals.css";
@@ -31,15 +32,23 @@ export default function RootLayout({
-
- {children}
-
-
+
+
+ {children}
+
+
+
);
diff --git a/app/src/app/login/page.tsx b/app/src/app/login/page.tsx
index b39710a..243a47c 100644
--- a/app/src/app/login/page.tsx
+++ b/app/src/app/login/page.tsx
@@ -4,6 +4,7 @@ import type { Metadata } from "next";
import { redirect } from "next/navigation";
import { getConfig } from "@/lib/config/load";
import { getSession } from "@/lib/auth/session";
+import { ThemeToggle } from "@/components/layout/theme-toggle";
import { LoginForm } from "./login-form";
export const metadata: Metadata = { title: "Sign in" };
@@ -16,7 +17,10 @@ export default async function LoginPage() {
if (session.userId) redirect("/");
return (
-
+
);
diff --git a/app/src/components/layout/nav.tsx b/app/src/components/layout/nav.tsx
index da3ed8c..273609d 100644
--- a/app/src/components/layout/nav.tsx
+++ b/app/src/components/layout/nav.tsx
@@ -5,6 +5,7 @@ import { usePathname, useRouter } from "next/navigation";
import { Terminal, History, LogOut } from "lucide-react";
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
+import { ThemeToggle } from "./theme-toggle";
const links = [
{ href: "/", label: "Scripts", icon: Terminal },
@@ -54,17 +55,20 @@ export function Nav({
))}
- {authEnabled && (
-
-
- {username}
-
-
-
- )}
+
+
+ {authEnabled && (
+ <>
+
+ {username}
+
+
+ >
+ )}
+
);
diff --git a/app/src/components/layout/theme-toggle.tsx b/app/src/components/layout/theme-toggle.tsx
new file mode 100644
index 0000000..dfc7b5c
--- /dev/null
+++ b/app/src/components/layout/theme-toggle.tsx
@@ -0,0 +1,22 @@
+"use client";
+
+import { Moon, Sun } from "lucide-react";
+import { useTheme } from "next-themes";
+import { Button } from "@/components/ui/button";
+
+export function ThemeToggle() {
+ const { resolvedTheme, setTheme } = useTheme();
+
+ return (
+
+ );
+}