diff --git a/apps/array/src/renderer/features/code-editor/components/CodeMirrorDiffEditor.tsx b/apps/array/src/renderer/features/code-editor/components/CodeMirrorDiffEditor.tsx index c0e8cce7..530f33af 100644 --- a/apps/array/src/renderer/features/code-editor/components/CodeMirrorDiffEditor.tsx +++ b/apps/array/src/renderer/features/code-editor/components/CodeMirrorDiffEditor.tsx @@ -1,9 +1,8 @@ import { Box, Flex, SegmentedControl } from "@radix-ui/themes"; -import { useMemo, useState } from "react"; +import { useMemo } from "react"; import { useCodeMirror } from "../hooks/useCodeMirror"; import { useEditorExtensions } from "../hooks/useEditorExtensions"; - -type ViewMode = "split" | "unified"; +import { useDiffViewerStore, type ViewMode } from "../stores/diffViewerStore"; interface CodeMirrorDiffEditorProps { originalContent: string; @@ -18,7 +17,7 @@ export function CodeMirrorDiffEditor({ filePath, onContentChange, }: CodeMirrorDiffEditorProps) { - const [viewMode, setViewMode] = useState("split"); + const { viewMode, setViewMode } = useDiffViewerStore(); const extensions = useEditorExtensions(filePath, true); const options = useMemo( () => ({ diff --git a/apps/array/src/renderer/features/code-editor/stores/diffViewerStore.ts b/apps/array/src/renderer/features/code-editor/stores/diffViewerStore.ts new file mode 100644 index 00000000..02a6f449 --- /dev/null +++ b/apps/array/src/renderer/features/code-editor/stores/diffViewerStore.ts @@ -0,0 +1,21 @@ +import { create } from "zustand"; +import { persist } from "zustand/middleware"; + +export type ViewMode = "split" | "unified"; + +interface DiffViewerStore { + viewMode: ViewMode; + setViewMode: (mode: ViewMode) => void; +} + +export const useDiffViewerStore = create()( + persist( + (set) => ({ + viewMode: "split", + setViewMode: (mode) => set({ viewMode: mode }), + }), + { + name: "diff-viewer-storage", + }, + ), +);