gr-related-changes-list: Use change-model for patchNum
Release-Notes: skip
Change-Id: I3f7799e86a3d5c7e6ded76a7a362e85c389d5c2f
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
index d07a6ac..dc99055 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
@@ -1441,7 +1441,6 @@
id="relatedChanges"
.change=${this.change}
.mergeable=${this.mergeable}
- .patchNum=${computeLatestPatchNum(this.allPatchSets)}
></gr-related-changes-list>
</div>
<div class="emptySpace"></div>
diff --git a/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list.ts b/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list.ts
index cac9ae5..4aae939 100644
--- a/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list.ts
+++ b/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list.ts
@@ -16,7 +16,7 @@
import {
ChangeInfo,
CommitId,
- PatchSetNum,
+ PatchSetNumber,
RelatedChangeAndCommitInfo,
RelatedChangesInfo,
RevisionPatchSetNum,
@@ -33,6 +33,9 @@
} from '../../../utils/change-util';
import {DEFALT_NUM_CHANGES_WHEN_COLLAPSED} from './gr-related-collapse';
import {createChangeUrl} from '../../../models/views/change';
+import {subscribe} from '../../lit/subscription-controller';
+import {resolve} from '../../../models/dependency';
+import {changeModelToken} from '../../../models/change/change-model';
export interface ChangeMarkersInList {
showCurrentChangeArrow: boolean;
@@ -54,13 +57,13 @@
@property({type: Object})
change?: ParsedChangeInfo;
- @property({type: String})
- patchNum?: PatchSetNum;
-
@property({type: Boolean})
mergeable?: boolean;
@state()
+ latestPatchNum?: PatchSetNumber;
+
+ @state()
submittedTogether?: SubmittedTogetherInfo = {
changes: [],
non_visible_changes: 0,
@@ -80,6 +83,17 @@
private readonly restApiService = getAppContext().restApiService;
+ private readonly getChangeModel = resolve(this, changeModelToken);
+
+ constructor() {
+ super();
+ subscribe(
+ this,
+ () => this.getChangeModel().latestPatchNum$,
+ x => (this.latestPatchNum = x)
+ );
+ }
+
static override get styles() {
return [
sharedStyles,
@@ -197,7 +211,7 @@
);
const connectedRevisions = this._computeConnectedRevisions(
this.change,
- this.patchNum,
+ this.latestPatchNum,
this.relatedChanges
);
@@ -570,11 +584,12 @@
reload(getRelatedChanges?: Promise<RelatedChangesInfo | undefined>) {
const change = this.change;
if (!change) return Promise.reject(new Error('change missing'));
- if (!this.patchNum) return Promise.reject(new Error('patchNum missing'));
+ if (!this.latestPatchNum)
+ return Promise.reject(new Error('latestPatchNum missing'));
if (!getRelatedChanges) {
getRelatedChanges = this.restApiService.getRelatedChanges(
change._number,
- this.patchNum
+ this.latestPatchNum
);
}
const promises: Array<Promise<void>> = [
@@ -652,15 +667,15 @@
*/
_computeConnectedRevisions(
change?: ParsedChangeInfo,
- patchNum?: PatchSetNum,
+ latestPatchNum?: PatchSetNumber,
relatedChanges?: RelatedChangeAndCommitInfo[]
) {
- if (!patchNum || !relatedChanges || !change) {
+ if (!latestPatchNum || !relatedChanges || !change) {
return [];
}
const connected: CommitId[] = [];
- const changeRevision = getRevisionKey(change, patchNum);
+ const changeRevision = getRevisionKey(change, latestPatchNum);
const commits = relatedChanges.map(c => c.commit);
let pos = commits.length - 1;
diff --git a/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts b/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts
index 3e90145..571b5b5 100644
--- a/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts
@@ -30,7 +30,7 @@
ChangeInfo,
CommitId,
NumericChangeId,
- PatchSetNum,
+ PatchSetNumber,
RelatedChangeAndCommitInfo,
RelatedChangesInfo,
SubmittedTogetherInfo,
@@ -192,7 +192,7 @@
setup(() => {
element.change = createParsedChange();
- element.patchNum = 1 as PatchSetNum;
+ element.latestPatchNum = 1 as PatchSetNumber;
});
test('render', async () => {
@@ -378,7 +378,7 @@
});
test('request conflicts if open and mergeable', () => {
- element.patchNum = 7 as PatchSetNum;
+ element.latestPatchNum = 7 as PatchSetNumber;
element.change = {
...createParsedChange(),
change_id: '123' as ChangeId,
@@ -390,7 +390,7 @@
});
test('does not request conflicts if closed and mergeable', () => {
- element.patchNum = 7 as PatchSetNum;
+ element.latestPatchNum = 7 as PatchSetNumber;
element.change = {
...createParsedChange(),
change_id: '123' as ChangeId,
@@ -401,7 +401,7 @@
});
test('does not request conflicts if open and not mergeable', () => {
- element.patchNum = 7 as PatchSetNum;
+ element.latestPatchNum = 7 as PatchSetNumber;
element.change = {
...createParsedChange(),
change_id: '123' as ChangeId,
@@ -413,7 +413,7 @@
});
test('doesnt request conflicts if closed and not mergeable', () => {
- element.patchNum = 7 as PatchSetNum;
+ element.latestPatchNum = 7 as PatchSetNumber;
element.change = {
...createParsedChange(),
change_id: '123' as ChangeId,
@@ -438,7 +438,7 @@
'9e593f6dcc2c0785a2ad2c895a34ad2aa9a0d8b6': createRevision(4),
},
};
- let patchNum = 7 as PatchSetNum;
+ let latestPatchNum = 7 as PatchSetNumber;
let relatedChanges: RelatedChangeAndCommitInfo[] = [
{
...createRelatedChangeAndCommitInfo(),
@@ -528,7 +528,7 @@
let connectedChanges = element._computeConnectedRevisions(
change,
- patchNum,
+ latestPatchNum,
relatedChanges
);
assert.deepEqual(connectedChanges, [
@@ -541,7 +541,7 @@
'2cebeedfb1e80f4b872d0a13ade529e70652c0c8',
]);
- patchNum = 4 as PatchSetNum;
+ latestPatchNum = 4 as PatchSetNumber;
relatedChanges = [
{
...createRelatedChangeAndCommitInfo(),
@@ -631,7 +631,7 @@
connectedChanges = element._computeConnectedRevisions(
change,
- patchNum,
+ latestPatchNum,
relatedChanges
);
assert.deepEqual(connectedChanges, [