Move __editing property to be part of only UIDraft Change-Id: I5e919e3b227eca8a4eb22f714477b99fd4c2ae81
diff --git a/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.ts b/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.ts index 6a32834..dc04e38 100644 --- a/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.ts +++ b/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.ts
@@ -399,7 +399,7 @@ hasRobotComment, hasHumanReplyToRobotComment, unresolved: !!lastComment && !!lastComment.unresolved, - isEditing: !!lastComment && !!lastComment.__editing, + isEditing: isDraft(lastComment) && !!lastComment.__editing, hasDraft: !!lastComment && isDraft(lastComment), updated, };
diff --git a/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list_test.js b/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list_test.js index 945cca9..622e1a2 100644 --- a/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list_test.js +++ b/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list_test.js
@@ -568,6 +568,7 @@ modifiedThreads[5].comments.push({ ...modifiedThreads[5].comments[0], __editing: true, + __draft: true, }); element.threads = modifiedThreads; MockInteractions.tap(element.shadowRoot.querySelector('#draftToggle'));
diff --git a/polygerrit-ui/app/elements/shared/gr-comment-thread/gr-comment-thread.ts b/polygerrit-ui/app/elements/shared/gr-comment-thread/gr-comment-thread.ts index f66e9d7..0f105e7 100644 --- a/polygerrit-ui/app/elements/shared/gr-comment-thread/gr-comment-thread.ts +++ b/polygerrit-ui/app/elements/shared/gr-comment-thread/gr-comment-thread.ts
@@ -559,7 +559,7 @@ // Check to see if there are any other open comments getting edited and // set the local storage value to its message value. for (const changeComment of this.comments) { - if (changeComment.__editing) { + if (isDraft(changeComment) && changeComment.__editing) { const commentLocation: StorageLocation = { changeNum: this.changeNum, patchNum: this.patchNum,
diff --git a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts index ec8101f..494af02 100644 --- a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts +++ b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts
@@ -157,10 +157,10 @@ changeNum?: NumericChangeId; @property({type: Object, notify: true, observer: '_commentChanged'}) - comment?: UIComment | UIRobot; + comment?: UIComment; @property({type: Array}) - comments?: (UIComment | UIRobot)[]; + comments?: UIComment[]; @property({type: Boolean, reflectToAttribute: true}) isRobotComment = false; @@ -483,7 +483,7 @@ } _commentChanged(comment: UIComment) { - this.editing = !!comment.__editing; + this.editing = isDraft(comment) && !!comment.__editing; this.resolved = !comment.unresolved; if (this.editing) { // It's a new draft/reply, notify. @@ -553,7 +553,7 @@ cancelButton.hidden = !editing; } } - if (this.comment) { + if (isDraft(this.comment)) { this.comment.__editing = this.editing; } if (!!editing !== !!previousValue) {
diff --git a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_test.js b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_test.js index 54742f5..610dc3b 100644 --- a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_test.js +++ b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_test.js
@@ -1264,7 +1264,7 @@ element = draftFixture.instantiate(); // fake random element.getRandomNum = () => 0; - element.comment = {__editing: true}; + element.comment = {__editing: true, __draft: true}; flush(() => { assert.isTrue(respectfulGetStub.called); assert.isTrue(respectfulSetStub.called); @@ -1287,7 +1287,7 @@ element = draftFixture.instantiate(); // fake random element.getRandomNum = () => 0; - element.comment = {__editing: true}; + element.comment = {__editing: true, __draft: true}; flush(() => { assert.isTrue(respectfulGetStub.called); assert.isTrue(respectfulSetStub.called); @@ -1316,7 +1316,7 @@ element = draftFixture.instantiate(); // fake random element.getRandomNum = () => 3; - element.comment = {__editing: true}; + element.comment = {__editing: true, __draft: true}; flush(() => { assert.isTrue(respectfulGetStub.called); assert.isFalse(respectfulSetStub.called); @@ -1371,7 +1371,7 @@ element = draftFixture.instantiate(); // fake random element.getRandomNum = () => 0; - element.comment = {__editing: true}; + element.comment = {__editing: true, __draft: true}; flush(() => { assert.isTrue(respectfulGetStub.called); assert.isFalse(respectfulSetStub.called);
diff --git a/polygerrit-ui/app/utils/comment-util.ts b/polygerrit-ui/app/utils/comment-util.ts index 9fc92e3..1620396 100644 --- a/polygerrit-ui/app/utils/comment-util.ts +++ b/polygerrit-ui/app/utils/comment-util.ts
@@ -46,11 +46,13 @@ // the comment diffSide?: Side; collapsed?: boolean; - // TODO(TS): Consider allowing this only for drafts. +} + +export interface UIStateDraftProps { __editing?: boolean; } -export type UIDraft = DraftInfo & UIStateCommentProps; +export type UIDraft = DraftInfo & UIStateCommentProps & UIStateDraftProps; export type UIHuman = CommentInfo & UIStateCommentProps;