Skip to content

Commit f723666

Browse files
authored
feat: Persist diff mode selection (#239)
1 parent a43729a commit f723666

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

apps/array/src/renderer/features/code-editor/components/CodeMirrorDiffEditor.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import { Box, Flex, SegmentedControl } from "@radix-ui/themes";
2-
import { useMemo, useState } from "react";
2+
import { useMemo } from "react";
33
import { useCodeMirror } from "../hooks/useCodeMirror";
44
import { useEditorExtensions } from "../hooks/useEditorExtensions";
5-
6-
type ViewMode = "split" | "unified";
5+
import { useDiffViewerStore, type ViewMode } from "../stores/diffViewerStore";
76

87
interface CodeMirrorDiffEditorProps {
98
originalContent: string;
@@ -18,7 +17,7 @@ export function CodeMirrorDiffEditor({
1817
filePath,
1918
onContentChange,
2019
}: CodeMirrorDiffEditorProps) {
21-
const [viewMode, setViewMode] = useState<ViewMode>("split");
20+
const { viewMode, setViewMode } = useDiffViewerStore();
2221
const extensions = useEditorExtensions(filePath, true);
2322
const options = useMemo(
2423
() => ({
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { create } from "zustand";
2+
import { persist } from "zustand/middleware";
3+
4+
export type ViewMode = "split" | "unified";
5+
6+
interface DiffViewerStore {
7+
viewMode: ViewMode;
8+
setViewMode: (mode: ViewMode) => void;
9+
}
10+
11+
export const useDiffViewerStore = create<DiffViewerStore>()(
12+
persist(
13+
(set) => ({
14+
viewMode: "split",
15+
setViewMode: (mode) => set({ viewMode: mode }),
16+
}),
17+
{
18+
name: "diff-viewer-storage",
19+
},
20+
),
21+
);

0 commit comments

Comments
 (0)