diff options
| author | Adam <[email protected]> | 2025-12-31 09:23:24 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-31 09:23:24 -0600 |
| commit | 2ec6a21cc0018be6677e4cbad6bf48dbf8b37786 (patch) | |
| tree | 6ad3f27288f660b4bba43772075c5138764f25b3 /packages/app | |
| parent | ebf5ad25c5f5cdf42bcb93199d9913f260ebe767 (diff) | |
| download | opencode-2ec6a21cc0018be6677e4cbad6bf48dbf8b37786.tar.gz opencode-2ec6a21cc0018be6677e4cbad6bf48dbf8b37786.zip | |
feat(desktop): unified diff toggle
Diffstat (limited to 'packages/app')
| -rw-r--r-- | packages/app/src/context/layout.tsx | 11 | ||||
| -rw-r--r-- | packages/app/src/pages/session.tsx | 5 |
2 files changed, 15 insertions, 1 deletions
diff --git a/packages/app/src/context/layout.tsx b/packages/app/src/context/layout.tsx index e57f69f8f..156adc4ff 100644 --- a/packages/app/src/context/layout.tsx +++ b/packages/app/src/context/layout.tsx @@ -30,6 +30,8 @@ type SessionTabs = { export type LocalProject = Partial<Project> & { worktree: string; expanded: boolean } +export type ReviewDiffStyle = "unified" | "split" + export const { use: useLayout, provider: LayoutProvider } = createSimpleContext({ name: "Layout", init: () => { @@ -49,6 +51,7 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext( }, review: { opened: true, + diffStyle: "split" as ReviewDiffStyle, }, session: { width: 600, @@ -156,6 +159,14 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext( }, review: { opened: createMemo(() => store.review?.opened ?? true), + diffStyle: createMemo(() => store.review?.diffStyle ?? "split"), + setDiffStyle(diffStyle: ReviewDiffStyle) { + if (!store.review) { + setStore("review", { opened: true, diffStyle }) + return + } + setStore("review", "diffStyle", diffStyle) + }, open() { setStore("review", "opened", true) }, diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index 6b9ff9e08..032a8375a 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -742,6 +742,8 @@ export default function Page() { <div class="relative h-full mt-6 overflow-y-auto no-scrollbar"> <SessionReview diffs={diffs()} + diffStyle={layout.review.diffStyle()} + onDiffStyleChange={layout.review.setDiffStyle} classes={{ root: "pb-32", header: "px-4", @@ -867,7 +869,8 @@ export default function Page() { container: "px-6", }} diffs={diffs()} - split + diffStyle={layout.review.diffStyle()} + onDiffStyleChange={layout.review.setDiffStyle} /> </div> </Tabs.Content> |
