diff --git a/components/editor/code-panel.tsx b/components/editor/code-panel.tsx index 89ad7b71..f0e1ed6e 100644 --- a/components/editor/code-panel.tsx +++ b/components/editor/code-panel.tsx @@ -1,6 +1,6 @@ import { useState } from "react"; import { Button } from "@/components/ui/button"; -import { Copy, Check } from "lucide-react"; +import { Copy, Check, Heart } from "lucide-react"; import { ThemeEditorState } from "@/types/editor"; import { ScrollArea, ScrollBar } from "../ui/scroll-area"; import { ColorFormat } from "../../types"; @@ -16,6 +16,7 @@ import { useEditorStore } from "@/store/editor-store"; import { usePreferencesStore } from "@/store/preferences-store"; import { generateThemeCode } from "@/utils/theme-style-generator"; import { useThemePresetStore } from "@/store/theme-preset-store"; +import { Alert, AlertDescription, AlertTitle } from "../ui/alert"; interface CodePanelProps { themeEditorState: ThemeEditorState; @@ -37,6 +38,9 @@ const CodePanel: React.FC = ({ themeEditorState }) => { const setPackageManager = usePreferencesStore( (state) => state.setPackageManager ); + const hasUnsavedChanges = useEditorStore( + (state) => state.hasThemeChangedFromCheckpoint + ); const isSavedPreset = useThemePresetStore( (state) => preset && state.getPreset(preset)?.source === "SAVED" @@ -103,7 +107,21 @@ const CodePanel: React.FC = ({ themeEditorState }) => {

Theme Code

- {preset && preset !== "default" && ( + {preset && preset !== "default" && hasUnsavedChanges() && ( + + You have unsaved changes. + +
+
+ + Save +
+ your theme to get the registry command. +
+
+
+ )} + {preset && preset !== "default" && !hasUnsavedChanges() && (
{(["pnpm", "npm", "yarn", "bun"] as const).map((pm) => (