@@ -233,7 +233,15 @@ export default function Page() {
233233 }
234234
235235 const isDesktop = createMediaQuery ( "(min-width: 768px)" )
236- const centered = createMemo ( ( ) => isDesktop ( ) && ! view ( ) . reviewPanel . opened ( ) )
236+ const desktopReviewOpen = createMemo ( ( ) => isDesktop ( ) && view ( ) . reviewPanel . opened ( ) )
237+ const desktopFileTreeOpen = createMemo ( ( ) => isDesktop ( ) && layout . fileTree . opened ( ) )
238+ const desktopSidePanelOpen = createMemo ( ( ) => desktopReviewOpen ( ) || desktopFileTreeOpen ( ) )
239+ const sessionPanelWidth = createMemo ( ( ) => {
240+ if ( ! desktopSidePanelOpen ( ) ) return "100%"
241+ if ( desktopReviewOpen ( ) ) return `${ layout . session . width ( ) } px`
242+ return `calc(100% - ${ layout . fileTree . width ( ) } px)`
243+ } )
244+ const centered = createMemo ( ( ) => isDesktop ( ) && ! desktopSidePanelOpen ( ) )
237245
238246 function normalizeTab ( tab : string ) {
239247 if ( ! tab . startsWith ( "file://" ) ) return tab
@@ -252,12 +260,18 @@ export default function Page() {
252260 return next
253261 }
254262
263+ const openReviewPanel = ( ) => {
264+ if ( ! view ( ) . reviewPanel . opened ( ) ) view ( ) . reviewPanel . open ( )
265+ }
266+
255267 const openTab = ( value : string ) => {
256268 const next = normalizeTab ( value )
257269 tabs ( ) . open ( next )
258270
259271 const path = file . pathFromTab ( next )
260- if ( path ) file . load ( path )
272+ if ( ! path ) return
273+ file . load ( path )
274+ openReviewPanel ( )
261275 }
262276
263277 createEffect ( ( ) => {
@@ -1085,6 +1099,7 @@ export default function Page() {
10851099 }
10861100
10871101 const focusReviewDiff = ( path : string ) => {
1102+ openReviewPanel ( )
10881103 const current = view ( ) . review . open ( ) ?? [ ]
10891104 if ( ! current . includes ( path ) ) view ( ) . review . setOpen ( [ ...current , path ] )
10901105 setTree ( { activeDiff : path , pendingDiff : path } )
@@ -1203,7 +1218,7 @@ export default function Page() {
12031218 if ( ! id ) return
12041219
12051220 const wants = isDesktop ( )
1206- ? view ( ) . reviewPanel . opened ( ) && ( layout . fileTree . opened ( ) || activeTab ( ) === "review" )
1221+ ? desktopFileTreeOpen ( ) || ( desktopReviewOpen ( ) && activeTab ( ) === "review" )
12071222 : store . mobileTab === "changes"
12081223 if ( ! wants ) return
12091224 if ( sync . data . session_diff [ id ] !== undefined ) return
@@ -1216,7 +1231,6 @@ export default function Page() {
12161231 createEffect ( ( ) => {
12171232 const dir = sdk . directory
12181233 if ( ! isDesktop ( ) ) return
1219- if ( ! view ( ) . reviewPanel . opened ( ) ) return
12201234 if ( ! layout . fileTree . opened ( ) ) return
12211235 if ( sync . status === "loading" ) return
12221236
@@ -1533,10 +1547,10 @@ export default function Page() {
15331547 classList = { {
15341548 "@container relative shrink-0 flex flex-col min-h-0 h-full bg-background-stronger" : true ,
15351549 "flex-1 pt-2 md:pt-3" : true ,
1536- "md:flex-none" : view ( ) . reviewPanel . opened ( ) ,
1550+ "md:flex-none" : desktopSidePanelOpen ( ) ,
15371551 } }
15381552 style = { {
1539- width : isDesktop ( ) && view ( ) . reviewPanel . opened ( ) ? ` ${ layout . session . width ( ) } px` : "100%" ,
1553+ width : sessionPanelWidth ( ) ,
15401554 "--prompt-height" : store . promptHeight ? `${ store . promptHeight } px` : undefined ,
15411555 } }
15421556 >
@@ -1663,7 +1677,7 @@ export default function Page() {
16631677 setPromptDockRef = { ( el ) => ( promptDock = el ) }
16641678 />
16651679
1666- < Show when = { isDesktop ( ) && view ( ) . reviewPanel . opened ( ) } >
1680+ < Show when = { desktopReviewOpen ( ) } >
16671681 < ResizeHandle
16681682 direction = "horizontal"
16691683 size = { layout . session . width ( ) }
@@ -1675,7 +1689,8 @@ export default function Page() {
16751689 </ div >
16761690
16771691 < SessionSidePanel
1678- open = { isDesktop ( ) && view ( ) . reviewPanel . opened ( ) }
1692+ open = { desktopSidePanelOpen ( ) }
1693+ reviewOpen = { desktopReviewOpen ( ) }
16791694 language = { language }
16801695 layout = { layout }
16811696 command = { command }
0 commit comments