summaryrefslogtreecommitdiffhomepage
path: root/packages/app
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-31 09:23:24 -0600
committerAdam <[email protected]>2025-12-31 09:23:24 -0600
commit2ec6a21cc0018be6677e4cbad6bf48dbf8b37786 (patch)
tree6ad3f27288f660b4bba43772075c5138764f25b3 /packages/app
parentebf5ad25c5f5cdf42bcb93199d9913f260ebe767 (diff)
downloadopencode-2ec6a21cc0018be6677e4cbad6bf48dbf8b37786.tar.gz
opencode-2ec6a21cc0018be6677e4cbad6bf48dbf8b37786.zip
feat(desktop): unified diff toggle
Diffstat (limited to 'packages/app')
-rw-r--r--packages/app/src/context/layout.tsx11
-rw-r--r--packages/app/src/pages/session.tsx5
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>