@@ -8,7 +8,7 @@ import { CloseResult, OpenCommitChangesArgs } from '../../common/views';
88import { IComment } from '../../src/common/comment' ;
99import { EventType , ReviewEvent , SessionLinkInfo , TimelineEvent } from '../../src/common/timelineEvent' ;
1010import { IProjectItem , MergeMethod , ReadyForReview } from '../../src/github/interface' ;
11- import { CancelCodingAgentReply , ChangeAssigneesReply , MergeArguments , MergeResult , ProjectItemsReply , PullRequest , SubmitReviewReply } from '../../src/github/views' ;
11+ import { CancelCodingAgentReply , ChangeAssigneesReply , DeleteReviewResult , MergeArguments , MergeResult , ProjectItemsReply , PullRequest , SubmitReviewReply } from '../../src/github/views' ;
1212import { getState , setState , updateState } from './cache' ;
1313import { getMessageHandler , MessageHandler } from './message' ;
1414
@@ -160,23 +160,21 @@ export class PRContext {
160160
161161 public deleteReview = async ( ) => {
162162 try {
163- const result : { deletedReviewId : number ; deletedReviewComments : IComment [ ] } = await this . postMessage ( { command : 'pr.delete-review' } ) ;
164-
163+ const result : DeleteReviewResult = await this . postMessage ( { command : 'pr.delete-review' } ) ;
164+
165165 // Check that the deletedReviewId exists in the events before clearing everything
166166 const state = this . pr ;
167- const reviewExists = state . events . some ( event =>
168- event . event === EventType . Reviewed && event . id === result . deletedReviewId
169- ) ;
170-
171- if ( result . deletedReviewId && reviewExists ) {
167+ const eventsWithoutPendingReview = state ? .events . filter ( event =>
168+ ! ( event . event === EventType . Reviewed && event . id === result . deletedReviewId )
169+ ) ?? [ ] ;
170+
171+ if ( state && ( eventsWithoutPendingReview . length < state . events . length ) ) {
172172 // Update the PR state to reflect the deleted review
173173 state . busy = false ;
174174 state . pendingCommentText = '' ;
175175 state . pendingCommentDrafts = { } ;
176176 // Remove the deleted review from events
177- state . events = state . events . filter ( event =>
178- ! ( event . event === EventType . Reviewed && event . id === result . deletedReviewId )
179- ) ;
177+ state . events = eventsWithoutPendingReview ;
180178 this . updatePR ( state ) ;
181179 }
182180 return result ;
0 commit comments