@@ -812,15 +812,15 @@ const {
812812 return
813813 }
814814
815+ prDrawerController . clearSelectedRepositoryActivePrContext ( { resetForm : false } )
816+
815817 const nextWorkspaceRepositoryFullName =
816818 typeof workspace . repo === 'string' ? workspace . repo . trim ( ) : ''
817819 if ( nextWorkspaceRepositoryFullName ) {
818820 workspaceRepositoryFullName = nextWorkspaceRepositoryFullName
819821 byotControls . setSelectedRepository ( nextWorkspaceRepositoryFullName )
820822 }
821823
822- prDrawerController . clearSelectedRepositoryActivePrContext ( { resetForm : false } )
823-
824824 const state =
825825 typeof workspace . prContextState === 'string'
826826 ? workspace . prContextState . trim ( ) . toLowerCase ( )
@@ -955,6 +955,7 @@ const workspacePrSessionHandoffController = createWorkspacePrSessionHandoffContr
955955 defaults : {
956956 defaultComponentTabName,
957957 defaultComponentTabPath,
958+ defaultComponentTabContent : defaultJsx ,
958959 } ,
959960 state : {
960961 getWorkspacePrNumber : ( ) => workspacePrNumber ,
@@ -998,17 +999,6 @@ const workspacePrSessionHandoffController = createWorkspacePrSessionHandoffContr
998999 } ,
9991000} )
10001001
1001- const archivePrSessionAndStartFreshLocal = ( { result, archivedState, statusMessage } ) => {
1002- hasObservedActivePrContextInSession = false
1003- setWorkspacePrNumber ( result ?. pullRequestNumber )
1004- byotControls . clearSelectedRepositoryPreference ( )
1005- workspaceRepositoryFullName = ''
1006- workspacePrSessionHandoffController . archivePrWorkspaceAndStartFreshLocal ( {
1007- archivedState,
1008- statusMessage,
1009- } )
1010- }
1011-
10121002const onPrContextStateChange = createPrContextStateChangeHandler ( {
10131003 toNonEmptyWorkspaceText,
10141004 toPullRequestNumber,
@@ -1120,16 +1110,25 @@ const githubWorkflows = createGitHubWorkflowsSetup({
11201110 if ( nextPrNumber !== null ) {
11211111 setWorkspacePrNumber ( nextPrNumber )
11221112 }
1123- persistWorkspacePrContextState ( 'closed' )
1113+ setWorkspacePrContextState ( 'closed' )
11241114
11251115 const persistClosedRecords = async ( ) => {
1116+ const activeWorkspaceId = toNonEmptyWorkspaceText ( activeWorkspaceRecordId )
1117+ const activeWorkspaceRecord = activeWorkspaceId
1118+ ? await workspaceStorage . getWorkspaceById ( activeWorkspaceId )
1119+ : null
1120+ const preservedPrTitle =
1121+ toNonEmptyWorkspaceText ( activeWorkspaceRecord ?. prTitle ) ||
1122+ toNonEmptyWorkspaceText ( githubPrTitle ?. value )
1123+
11261124 await persistClosedPrContextRecords ( {
11271125 workspaceStorage,
11281126 selectedRepository : toNonEmptyWorkspaceText (
11291127 getCurrentSelectedRepositoryFullName ( ) ,
11301128 ) ,
11311129 nextPrNumber,
11321130 normalizedHead : toNonEmptyWorkspaceText ( githubPrHeadBranch ?. value ) ,
1131+ fallbackPrTitle : preservedPrTitle ,
11331132 toNonEmptyWorkspaceText,
11341133 refreshLocalContextOptions,
11351134 } )
@@ -1140,11 +1139,40 @@ const githubWorkflows = createGitHubWorkflowsSetup({
11401139 } )
11411140 } ,
11421141 onPrContextClosed : result => {
1143- archivePrSessionAndStartFreshLocal ( {
1144- result,
1145- archivedState : 'closed' ,
1146- statusMessage :
1147- 'PR context closed. Open Workspaces to load a saved workspace or continue with this local workspace.' ,
1142+ hasObservedActivePrContextInSession = false
1143+ const nextPrNumber =
1144+ toPullRequestNumber ( result ?. pullRequestNumber ) ??
1145+ parsePullRequestNumberFromUrl ( result ?. pullRequestUrl )
1146+ if ( nextPrNumber !== null ) {
1147+ setWorkspacePrNumber ( nextPrNumber )
1148+ }
1149+ setWorkspacePrContextState ( 'closed' )
1150+
1151+ const persistClosedRecords = async ( ) => {
1152+ const activeWorkspaceId = toNonEmptyWorkspaceText ( activeWorkspaceRecordId )
1153+ const activeWorkspaceRecord = activeWorkspaceId
1154+ ? await workspaceStorage . getWorkspaceById ( activeWorkspaceId )
1155+ : null
1156+ const preservedPrTitle =
1157+ toNonEmptyWorkspaceText ( result ?. prTitle ) ||
1158+ toNonEmptyWorkspaceText ( activeWorkspaceRecord ?. prTitle ) ||
1159+ toNonEmptyWorkspaceText ( githubPrTitle ?. value )
1160+
1161+ await persistClosedPrContextRecords ( {
1162+ workspaceStorage,
1163+ selectedRepository : toNonEmptyWorkspaceText (
1164+ getCurrentSelectedRepositoryFullName ( ) ,
1165+ ) ,
1166+ nextPrNumber,
1167+ normalizedHead : toNonEmptyWorkspaceText ( githubPrHeadBranch ?. value ) ,
1168+ fallbackPrTitle : preservedPrTitle ,
1169+ toNonEmptyWorkspaceText,
1170+ refreshLocalContextOptions,
1171+ } )
1172+ }
1173+
1174+ void persistClosedRecords ( ) . catch ( ( ) => {
1175+ /* Save failures are already surfaced through saver onError. */
11481176 } )
11491177 } ,
11501178 getPersistedActivePrContext,
0 commit comments