@@ -285,6 +285,7 @@ export default function Page() {
285285 const [ ui , setUi ] = createStore ( {
286286 git : false ,
287287 pendingMessage : undefined as string | undefined ,
288+ reviewSnap : false ,
288289 scrollGesture : 0 ,
289290 scroll : {
290291 overflow : false ,
@@ -460,6 +461,21 @@ export default function Page() {
460461 return key
461462 } , sessionKey ( ) )
462463
464+ let reviewFrame : number | undefined
465+
466+ createComputed ( ( prev ) => {
467+ const open = desktopReviewOpen ( )
468+ if ( prev === undefined || prev === open ) return open
469+
470+ if ( reviewFrame !== undefined ) cancelAnimationFrame ( reviewFrame )
471+ setUi ( "reviewSnap" , true )
472+ reviewFrame = requestAnimationFrame ( ( ) => {
473+ reviewFrame = undefined
474+ setUi ( "reviewSnap" , false )
475+ } )
476+ return open
477+ } , desktopReviewOpen ( ) )
478+
463479 const turnDiffs = createMemo ( ( ) => lastUserMessage ( ) ?. summary ?. diffs ?? [ ] )
464480 const reviewDiffs = createMemo ( ( ) => ( store . changes === "session" ? diffs ( ) : turnDiffs ( ) ) )
465481
@@ -1233,6 +1249,7 @@ export default function Page() {
12331249 onCleanup ( ( ) => {
12341250 document . removeEventListener ( "keydown" , handleKeyDown )
12351251 scrollSpy . destroy ( )
1252+ if ( reviewFrame !== undefined ) cancelAnimationFrame ( reviewFrame )
12361253 if ( scrollStateFrame !== undefined ) cancelAnimationFrame ( scrollStateFrame )
12371254 } )
12381255
@@ -1254,7 +1271,7 @@ export default function Page() {
12541271 classList = { {
12551272 "@container relative shrink-0 flex flex-col min-h-0 h-full bg-background-stronger flex-1 md:flex-none" : true ,
12561273 "transition-[width] duration-[240ms] ease-[cubic-bezier(0.22,1,0.36,1)] will-change-[width] motion-reduce:transition-none" :
1257- ! size . active ( ) ,
1274+ ! size . active ( ) && ! ui . reviewSnap ,
12581275 } }
12591276 style = { {
12601277 width : sessionPanelWidth ( ) ,
@@ -1369,6 +1386,7 @@ export default function Page() {
13691386 reviewPanel = { reviewPanel }
13701387 activeDiff = { tree . activeDiff }
13711388 focusReviewDiff = { focusReviewDiff }
1389+ reviewSnap = { ui . reviewSnap }
13721390 size = { size }
13731391 />
13741392 </ div >
0 commit comments