@@ -169,6 +169,8 @@ export class ChatWidget extends Disposable implements IChatWidget {
169
169
private focusedInputDOM ! : HTMLElement ;
170
170
private editorOptions ! : ChatEditorOptions ;
171
171
172
+ private recentlyRestoredCheckpoint : boolean = false ;
173
+
172
174
private settingChangeCounter = 0 ;
173
175
174
176
private listContainer ! : HTMLElement ;
@@ -969,7 +971,6 @@ export class ChatWidget extends Disposable implements IChatWidget {
969
971
970
972
this . _register ( this . renderer . onDidFocusOutside ( ( ) => {
971
973
this . finishedEditing ( ) ;
972
- this . viewModel ?. model . setCheckpoint ( undefined ) ;
973
974
} ) ) ;
974
975
975
976
this . _register ( this . renderer . onDidClickFollowup ( item => {
@@ -1062,6 +1063,11 @@ export class ChatWidget extends Disposable implements IChatWidget {
1062
1063
return ;
1063
1064
}
1064
1065
1066
+ // this will only ever be true if we restored a checkpoint
1067
+ if ( this . viewModel ?. model . checkpoint ) {
1068
+ this . recentlyRestoredCheckpoint = true ;
1069
+ }
1070
+
1065
1071
this . viewModel ?. model . setCheckpoint ( currentElement . id ) ;
1066
1072
1067
1073
// set contexts and request to false
@@ -1144,7 +1150,11 @@ export class ChatWidget extends Disposable implements IChatWidget {
1144
1150
finishedEditing ( completedEdit ?: boolean ) : void {
1145
1151
// reset states
1146
1152
const editedRequest = this . renderer . getTemplateDataForRequestId ( this . viewModel ?. editing ?. id ) ;
1147
- this . viewModel ?. model . setCheckpoint ( undefined ) ;
1153
+ if ( this . recentlyRestoredCheckpoint ) {
1154
+ this . recentlyRestoredCheckpoint = false ;
1155
+ } else {
1156
+ this . viewModel ?. model . setCheckpoint ( undefined ) ;
1157
+ }
1148
1158
this . inputPart . dnd . setDisabledOverlay ( false ) ;
1149
1159
if ( editedRequest ?. contextKeyService ) {
1150
1160
ChatContextKeys . currentlyEditing . bindTo ( editedRequest . contextKeyService ) . set ( false ) ;
@@ -1750,6 +1760,7 @@ export class ChatWidget extends Disposable implements IChatWidget {
1750
1760
1751
1761
if ( this . viewModel ?. editing ) {
1752
1762
this . finishedEditing ( true ) ;
1763
+ this . viewModel . model ?. setCheckpoint ( undefined ) ;
1753
1764
}
1754
1765
return result . responseCreatedPromise ;
1755
1766
}
0 commit comments