diff --git a/packages/editor/src/app/editMode/page.tsx b/packages/editor/src/app/editMode/page.tsx index dd647da..e1f755a 100644 --- a/packages/editor/src/app/editMode/page.tsx +++ b/packages/editor/src/app/editMode/page.tsx @@ -7,6 +7,7 @@ import { Input } from "@/components/ui/input" import { Folder, File, Plus, X, ChevronRight, ChevronDown, Trash2 } from "lucide-react" import { motion, AnimatePresence } from "framer-motion" import { fetchAllContent } from '@/src/lib/getContents' +import { ThemeToggle } from "@/components/ui/ThemeToggle" const API_URL = process.env.NEXT_PUBLIC_BACKEND_API_URL || 'http://localhost:3001' @@ -408,9 +409,12 @@ export default function ImprovedFileTreeUI() { return (
-

- Project Explorer -

+
+

+ Project Explorer +

+ +
) { return ( - + - {children} + + {children} + + ); diff --git a/packages/editor/src/components/layout/TitleBar.tsx b/packages/editor/src/components/layout/TitleBar.tsx index 64b4ddd..b95e62e 100644 --- a/packages/editor/src/components/layout/TitleBar.tsx +++ b/packages/editor/src/components/layout/TitleBar.tsx @@ -4,6 +4,7 @@ import { ArrowLeft, Save } from 'lucide-react' import { Button } from "@/components/ui/button" import Link from "next/link" import { usePathname } from 'next/navigation' +import { ThemeToggle } from "@/components/ui/ThemeToggle" interface TitleBarProps { onSave: () => void @@ -34,14 +35,17 @@ export function TitleBar({ onSave, isSaving = false }: TitleBarProps) {

{filename}

- +
+ + +
) } diff --git a/packages/editor/src/components/ui/ThemeToggle.tsx b/packages/editor/src/components/ui/ThemeToggle.tsx new file mode 100644 index 0000000..8875999 --- /dev/null +++ b/packages/editor/src/components/ui/ThemeToggle.tsx @@ -0,0 +1,35 @@ +'use client' + +import { Moon, Sun } from "lucide-react" +import { useTheme } from "next-themes" +import { Button } from "./button" +import { useEffect, useState } from "react" + +export function ThemeToggle() { + const [mounted, setMounted] = useState(false) + const { theme, setTheme } = useTheme() + + useEffect(() => { + setMounted(true) + }, []) + + if (!mounted) { + return null + } + + return ( + + ) +} \ No newline at end of file