From 3041bc5d62069542fcb063b07e1c3b94f02fed85 Mon Sep 17 00:00:00 2001
From: Shreyash Gupta <48386323+shreyashkgupta@users.noreply.github.com>
Date: Mon, 2 Dec 2024 23:39:38 +0530
Subject: [PATCH] feat: Theming in editor
---
packages/editor/src/app/editMode/page.tsx | 10 ++++--
packages/editor/src/app/layout.tsx | 14 ++++++--
.../editor/src/components/layout/TitleBar.tsx | 20 ++++++-----
.../editor/src/components/ui/ThemeToggle.tsx | 35 +++++++++++++++++++
4 files changed, 66 insertions(+), 13 deletions(-)
create mode 100644 packages/editor/src/components/ui/ThemeToggle.tsx
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