summaryrefslogtreecommitdiff
path: root/apps/web/src/components
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2025-08-31 00:20:14 +0200
committerMaze Winther <mazewinther@gmail.com>2025-08-31 00:20:14 +0200
commit37d40148087fc7c3497fba31e82bc7c7496bde8d (patch)
treeb584ebda711fdfaa7561c653f53a8102e413153c /apps/web/src/components
parente98e40028ee3f9b074688fc54a1a1cae3caec63d (diff)
parent5abddb0a22c73b745e748409bc2fa46750ddd4d7 (diff)
downloadopencut-37d40148087fc7c3497fba31e82bc7c7496bde8d.tar.gz
Merge branch 'staging'
Diffstat (limited to 'apps/web/src/components')
-rw-r--r--apps/web/src/components/editor/editor-header.tsx15
-rw-r--r--apps/web/src/components/header.tsx6
-rw-r--r--apps/web/src/components/rename-project-dialog.tsx2
-rw-r--r--apps/web/src/components/theme-toggle.tsx25
-rw-r--r--apps/web/src/components/ui/dialog.tsx4
5 files changed, 33 insertions, 19 deletions
diff --git a/apps/web/src/components/editor/editor-header.tsx b/apps/web/src/components/editor/editor-header.tsx
index ad2a5b5a..5363d0c7 100644
--- a/apps/web/src/components/editor/editor-header.tsx
+++ b/apps/web/src/components/editor/editor-header.tsx
@@ -1,7 +1,7 @@
"use client";
import { Button } from "../ui/button";
-import { ChevronDown, ArrowLeft, SquarePen, Trash, Sun } from "lucide-react";
+import { ChevronDown, ArrowLeft, SquarePen, Trash } from "lucide-react";
import { HeaderBase } from "../header-base";
import { useProjectStore } from "@/stores/project-store";
import { KeyboardShortcutsHelp } from "../keyboard-shortcuts-help";
@@ -18,16 +18,15 @@ import { RenameProjectDialog } from "../rename-project-dialog";
import { DeleteProjectDialog } from "../delete-project-dialog";
import { useRouter } from "next/navigation";
import { FaDiscord } from "react-icons/fa6";
-import { useTheme } from "next-themes";
import { PanelPresetSelector } from "./panel-preset-selector";
import { ExportButton } from "./export-button";
+import { ThemeToggle } from "../theme-toggle";
export function EditorHeader() {
const { activeProject, renameProject, deleteProject } = useProjectStore();
const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false);
const [isRenameDialogOpen, setIsRenameDialogOpen] = useState(false);
const router = useRouter();
- const { theme, setTheme } = useTheme();
const handleNameSave = async (newName: string) => {
console.log("handleNameSave", newName);
@@ -117,15 +116,7 @@ export function EditorHeader() {
<PanelPresetSelector />
<KeyboardShortcutsHelp />
<ExportButton />
- <Button
- size="icon"
- variant="text"
- className="h-7"
- onClick={() => setTheme(theme === "dark" ? "light" : "dark")}
- >
- <Sun className="!size-[1.1rem]" />
- <span className="sr-only">{theme === "dark" ? "Light" : "Dark"}</span>
- </Button>
+ <ThemeToggle />
</nav>
);
diff --git a/apps/web/src/components/header.tsx b/apps/web/src/components/header.tsx
index 2bfc82b7..f8877330 100644
--- a/apps/web/src/components/header.tsx
+++ b/apps/web/src/components/header.tsx
@@ -5,6 +5,7 @@ import { Button } from "./ui/button";
import { ArrowRight } from "lucide-react";
import { HeaderBase } from "./header-base";
import Image from "next/image";
+import { ThemeToggle } from "./theme-toggle";
export function Header() {
const leftContent = (
@@ -21,7 +22,7 @@ export function Header() {
);
const rightContent = (
- <nav className="flex items-center gap-1">
+ <nav className="flex items-center gap-2">
<div className="flex items-center gap-4">
<Link href="/blog">
<Button variant="text" className="text-sm p-0">
@@ -35,11 +36,12 @@ export function Header() {
</Link>
</div>
<Link href="/projects">
- <Button size="sm" className="text-sm ml-4">
+ <Button size="sm" className="text-sm ml-2">
Projects
<ArrowRight className="h-4 w-4" />
</Button>
</Link>
+ <ThemeToggle className="mr-2" />
</nav>
);
diff --git a/apps/web/src/components/rename-project-dialog.tsx b/apps/web/src/components/rename-project-dialog.tsx
index dd8dfcc4..dc576b00 100644
--- a/apps/web/src/components/rename-project-dialog.tsx
+++ b/apps/web/src/components/rename-project-dialog.tsx
@@ -51,7 +51,7 @@ export function RenameProjectDialog({
}
}}
placeholder="Enter a new name"
- className="mt-4 bg-background border-2 border-border"
+ className="mt-0 bg-background border-2 border-border"
/>
<DialogFooter>
diff --git a/apps/web/src/components/theme-toggle.tsx b/apps/web/src/components/theme-toggle.tsx
new file mode 100644
index 00000000..8302a19c
--- /dev/null
+++ b/apps/web/src/components/theme-toggle.tsx
@@ -0,0 +1,25 @@
+"use client";
+
+import { Button } from "./ui/button";
+import { Sun, Moon } from "lucide-react";
+import { useTheme } from "next-themes";
+
+interface ThemeToggleProps {
+ className?: string;
+}
+
+export function ThemeToggle({ className }: ThemeToggleProps) {
+ const { theme, setTheme } = useTheme();
+
+ return (
+ <Button
+ size="icon"
+ variant="text"
+ className="h-7"
+ onClick={() => setTheme(theme === "dark" ? "light" : "dark")}
+ >
+ <Sun className="!size-[1.1rem]" />
+ <span className="sr-only">{theme === "dark" ? "Light" : "Dark"}</span>
+ </Button>
+ );
+}
diff --git a/apps/web/src/components/ui/dialog.tsx b/apps/web/src/components/ui/dialog.tsx
index 767cbff6..ad7e825b 100644
--- a/apps/web/src/components/ui/dialog.tsx
+++ b/apps/web/src/components/ui/dialog.tsx
@@ -46,10 +46,6 @@ const DialogContent = React.forwardRef<
e.stopPropagation();
e.preventDefault();
}}
- onOpenAutoFocus={(e) => {
- e.stopPropagation();
- e.preventDefault();
- }}
{...props}
>
{children}