fix(app): global terminal/review pane toggles

This commit is contained in:
Adam
2026-01-19 13:05:49 -06:00
parent ecc51ddb4e
commit cac35bc52d

View File

@@ -33,8 +33,6 @@ type SessionTabs = {
type SessionView = { type SessionView = {
scroll: Record<string, SessionScroll> scroll: Record<string, SessionScroll>
reviewOpen?: string[] reviewOpen?: string[]
terminalOpened?: boolean
reviewPanelOpened?: boolean
} }
export type LocalProject = Partial<Project> & { worktree: string; expanded: boolean } export type LocalProject = Partial<Project> & { worktree: string; expanded: boolean }
@@ -78,9 +76,11 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext(
}, },
terminal: { terminal: {
height: 280, height: 280,
opened: false,
}, },
review: { review: {
diffStyle: "split" as ReviewDiffStyle, diffStyle: "split" as ReviewDiffStyle,
panelOpened: true,
}, },
session: { session: {
width: 600, width: 600,
@@ -172,7 +172,7 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext(
const current = store.sessionView[sessionKey] const current = store.sessionView[sessionKey]
const keep = meta.active ?? sessionKey const keep = meta.active ?? sessionKey
if (!current) { if (!current) {
setStore("sessionView", sessionKey, { scroll: next, terminalOpened: false, reviewPanelOpened: true }) setStore("sessionView", sessionKey, { scroll: next })
prune(keep) prune(keep)
return return
} }
@@ -379,31 +379,31 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext(
touch(sessionKey) touch(sessionKey)
scroll.seed(sessionKey) scroll.seed(sessionKey)
const s = createMemo(() => store.sessionView[sessionKey] ?? { scroll: {} }) const s = createMemo(() => store.sessionView[sessionKey] ?? { scroll: {} })
const terminalOpened = createMemo(() => s().terminalOpened ?? false) const terminalOpened = createMemo(() => store.terminal?.opened ?? false)
const reviewPanelOpened = createMemo(() => s().reviewPanelOpened ?? true) const reviewPanelOpened = createMemo(() => store.review?.panelOpened ?? true)
function setTerminalOpened(next: boolean) { function setTerminalOpened(next: boolean) {
const current = store.sessionView[sessionKey] const current = store.terminal
if (!current) { if (!current) {
setStore("sessionView", sessionKey, { scroll: {}, terminalOpened: next, reviewPanelOpened: true }) setStore("terminal", { height: 280, opened: next })
return return
} }
const value = current.terminalOpened ?? false const value = current.opened ?? false
if (value === next) return if (value === next) return
setStore("sessionView", sessionKey, "terminalOpened", next) setStore("terminal", "opened", next)
} }
function setReviewPanelOpened(next: boolean) { function setReviewPanelOpened(next: boolean) {
const current = store.sessionView[sessionKey] const current = store.review
if (!current) { if (!current) {
setStore("sessionView", sessionKey, { scroll: {}, terminalOpened: false, reviewPanelOpened: next }) setStore("review", { diffStyle: "split" as ReviewDiffStyle, panelOpened: next })
return return
} }
const value = current.reviewPanelOpened ?? true const value = current.panelOpened ?? true
if (value === next) return if (value === next) return
setStore("sessionView", sessionKey, "reviewPanelOpened", next) setStore("review", "panelOpened", next)
} }
return { return {
@@ -444,8 +444,6 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext(
if (!current) { if (!current) {
setStore("sessionView", sessionKey, { setStore("sessionView", sessionKey, {
scroll: {}, scroll: {},
terminalOpened: false,
reviewPanelOpened: true,
reviewOpen: open, reviewOpen: open,
}) })
return return