Skip to content

Commit 9b6c9f6

Browse files
committed
feat(desktop): review pane toggle
1 parent 1aae1c7 commit 9b6c9f6

File tree

3 files changed

+54
-1
lines changed

3 files changed

+54
-1
lines changed

packages/desktop/src/components/header.tsx

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,35 @@ export function Header(props: {
109109
</Show>
110110
</div>
111111
<div class="flex items-center gap-4">
112+
<Tooltip
113+
class="hidden md:block shrink-0"
114+
value={
115+
<div class="flex items-center gap-2">
116+
<span>Toggle review</span>
117+
<span class="text-icon-base text-12-medium">{command.keybind("review.toggle")}</span>
118+
</div>
119+
}
120+
>
121+
<Button variant="ghost" class="group/review-toggle size-6 p-0" onClick={layout.review.toggle}>
122+
<div class="relative flex items-center justify-center size-4 [&>*]:absolute [&>*]:inset-0">
123+
<Icon
124+
size="small"
125+
name={layout.review.opened() ? "layout-right-full" : "layout-right"}
126+
class="group-hover/review-toggle:hidden"
127+
/>
128+
<Icon
129+
size="small"
130+
name="layout-right-partial"
131+
class="hidden group-hover/review-toggle:inline-block"
132+
/>
133+
<Icon
134+
size="small"
135+
name={layout.review.opened() ? "layout-right" : "layout-right-full"}
136+
class="hidden group-active/review-toggle:inline-block"
137+
/>
138+
</div>
139+
</Button>
140+
</Tooltip>
112141
<Tooltip
113142
class="hidden md:block shrink-0"
114143
value={

packages/desktop/src/context/layout.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext(
4646
opened: false,
4747
height: 280,
4848
},
49+
review: {
50+
opened: true,
51+
},
4952
session: {
5053
width: 600,
5154
},
@@ -158,6 +161,18 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext(
158161
setStore("terminal", "height", height)
159162
},
160163
},
164+
review: {
165+
opened: createMemo(() => store.review?.opened ?? true),
166+
open() {
167+
setStore("review", "opened", true)
168+
},
169+
close() {
170+
setStore("review", "opened", false)
171+
},
172+
toggle() {
173+
setStore("review", "opened", (x) => !x)
174+
},
175+
},
161176
session: {
162177
width: createMemo(() => store.session?.width ?? 600),
163178
resize(width: number) {

packages/desktop/src/pages/session.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,15 @@ export default function Page() {
221221
slash: "terminal",
222222
onSelect: () => layout.terminal.toggle(),
223223
},
224+
{
225+
id: "review.toggle",
226+
title: "Toggle review",
227+
description: "Show or hide the review panel",
228+
category: "View",
229+
keybind: "mod+b",
230+
slash: "review",
231+
onSelect: () => layout.review.toggle(),
232+
},
224233
{
225234
id: "terminal.new",
226235
title: "New terminal",
@@ -533,7 +542,7 @@ export default function Page() {
533542
)
534543
}
535544

536-
const showTabs = createMemo(() => diffs().length > 0 || tabs().all().length > 0)
545+
const showTabs = createMemo(() => layout.review.opened() && (diffs().length > 0 || tabs().all().length > 0))
537546

538547
const mobileWorking = createMemo(() => status().type !== "idle")
539548
const mobileAutoScroll = createAutoScroll({

0 commit comments

Comments
 (0)