From f607353be6b6ee70dcb4073c81cc0e0953998dc6 Mon Sep 17 00:00:00 2001 From: adamelmore <2363879+adamdottv@users.noreply.github.com> Date: Wed, 28 Jan 2026 10:26:55 -0600 Subject: fix(app): close review pane --- packages/app/src/pages/session.tsx | 95 ++++++++++++-------------------------- 1 file changed, 30 insertions(+), 65 deletions(-) (limited to 'packages/app/src/pages') diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index 7b4f31c50..87ebf6db7 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -23,7 +23,6 @@ import { IconButton } from "@opencode-ai/ui/icon-button" import { Button } from "@opencode-ai/ui/button" import { Icon } from "@opencode-ai/ui/icon" import { Tooltip, TooltipKeybind } from "@opencode-ai/ui/tooltip" -import { DiffChanges } from "@opencode-ai/ui/diff-changes" import { ResizeHandle } from "@opencode-ai/ui/resize-handle" import { Tabs } from "@opencode-ai/ui/tabs" import { useCodeComponent } from "@opencode-ai/ui/context/code" @@ -325,6 +324,7 @@ export default function Page() { } const isDesktop = createMediaQuery("(min-width: 768px)") + const centered = createMemo(() => isDesktop() && !layout.fileTree.opened()) function normalizeTab(tab: string) { if (!tab.startsWith("file://")) return tab @@ -730,8 +730,8 @@ export default function Page() { onSelect: () => view().terminal.toggle(), }, { - id: "fileTree.toggle", - title: language.t("command.fileTree.toggle"), + id: "review.toggle", + title: language.t("command.review.toggle"), description: "", category: language.t("command.category.view"), keybind: "mod+shift+r", @@ -1097,12 +1097,11 @@ export default function Page() { }, 0) } - const reviewTab = createMemo(() => isDesktop() && !layout.fileTree.opened()) const contextOpen = createMemo(() => tabs().active() === "context" || tabs().all().includes("context")) const openedTabs = createMemo(() => tabs() .all() - .filter((tab) => tab !== "context" && tab !== "review"), + .filter((tab) => tab !== "context"), ) const mobileChanges = createMemo(() => !isDesktop() && store.mobileTab === "changes") @@ -1271,56 +1270,29 @@ export default function Page() { const activeTab = createMemo(() => { const active = tabs().active() if (active === "context") return "context" - if (active === "review" && reviewTab()) return "review" if (active && file.pathFromTab(active)) return normalizeTab(active) const first = openedTabs()[0] if (first) return first if (contextOpen()) return "context" - if (reviewTab() && hasReview()) return "review" return "empty" }) createEffect(() => { if (!layout.ready()) return if (tabs().active()) return - if (openedTabs().length === 0 && !contextOpen() && !(reviewTab() && hasReview())) return + if (openedTabs().length === 0 && !contextOpen()) return const next = activeTab() if (next === "empty") return tabs().setActive(next) }) - createEffect( - on( - () => layout.fileTree.opened(), - (opened, prev) => { - if (prev === undefined) return - if (!isDesktop()) return - - if (opened) { - const active = tabs().active() - const tab = active === "review" || (!active && hasReview()) ? "changes" : "all" - layout.fileTree.setTab(tab) - return - } - - if (fileTreeTab() !== "changes") return - tabs().setActive("review") - }, - { defer: true }, - ), - ) - createEffect(() => { const id = params.id if (!id) return - const wants = isDesktop() - ? layout.fileTree.opened() - ? fileTreeTab() === "changes" - : activeTab() === "review" - : store.mobileTab === "changes" + const wants = isDesktop() ? layout.fileTree.opened() && fileTreeTab() === "changes" : store.mobileTab === "changes" if (!wants) return if (sync.data.session_diff[id] !== undefined) return if (sync.status === "loading") return @@ -1789,10 +1761,11 @@ export default function Page() {
@@ -1967,6 +1940,7 @@ export default function Page() { "sticky top-0 z-30 bg-background-stronger": true, "w-full": true, "px-4 md:px-6": true, + "md:max-w-200 md:mx-auto": centered(), }} >
@@ -1991,7 +1965,13 @@ export default function Page() {
0}>
@@ -2039,7 +2019,10 @@ export default function Page() {
(promptDock = el)} class="absolute inset-x-0 bottom-0 pt-12 pb-4 flex flex-col justify-center items-center z-50 px-4 md:px-0 bg-gradient-to-t from-background-stronger via-background-stronger to-transparent pointer-events-none" > -
+
{(perm) => (
@@ -2163,7 +2151,7 @@ export default function Page() {
- + {/* Desktop side panel - hidden on mobile */} - +