diff --git a/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts b/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts index 61db314160..c1b17fe028 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts +++ b/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts @@ -231,9 +231,6 @@ export class GrDiffHost extends GestureEventListeners( @property({type: Boolean}) _loggedIn = false; - @property({type: Boolean}) - _loading = false; - @property({type: String}) _errorMessage: string | null = null; @@ -331,7 +328,7 @@ export class GrDiffHost extends GestureEventListeners( this.clear(); if (!this.path) throw new Error('Missing required "path" property.'); if (!this.changeNum) throw new Error('Missing required "changeNum" prop.'); - this._loading = true; + this.diff = undefined; this._errorMessage = null; const whitespaceLevel = this._getIgnoreWhitespace(); @@ -381,7 +378,6 @@ export class GrDiffHost extends GestureEventListeners( } finally { this.reporting.timeEnd(TimingLabel.TOTAL); } - this._loading = false; } private _getLayers(path: string, changeNum: NumericChangeId): DiffLayer[] { diff --git a/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host_html.ts b/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host_html.ts index c92fd5c65d..d1564b0561 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host_html.ts +++ b/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host_html.ts @@ -32,7 +32,6 @@ export const htmlTemplate = html` view-mode="[[viewMode]]" line-of-interest="[[lineOfInterest]]" logged-in="[[_loggedIn]]" - loading="[[_loading]]" error-message="[[_errorMessage]]" base-image="[[_baseImage]]" revision-image="[[_revisionImage]]" diff --git a/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host_test.js b/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host_test.js index e3bda36510..cd2c860cf6 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host_test.js +++ b/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host_test.js @@ -388,6 +388,13 @@ suite('gr-diff-host tests', () => { sinon.stub(element, '_getDiff').callsFake(() => new Promise(() => {})); element.patchRange = {}; + // Needs to be set to something first for it to cancel. + element.diff = { + content: [{ + a: ['foo'], + }], + }; + element.reload(); assert.isTrue(cancelStub.called); }); @@ -824,7 +831,7 @@ suite('gr-diff-host tests', () => { test('delegates cancel()', () => { const stub = sinon.stub(element.$.diff, 'cancel'); element.patchRange = {}; - element.reload(); + element.cancel(); assert.isTrue(stub.calledOnce); assert.equal(stub.lastCall.args.length, 0); }); diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.ts b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.ts index 022ac80239..7c317bbdd4 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.ts +++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.ts @@ -191,8 +191,9 @@ export class GrDiff extends GestureEventListeners( @property({type: Object}) lineOfInterest?: LineOfInterest; - @property({type: Boolean, observer: '_loadingChanged'}) - loading = false; + /** True when diff is changed, until the content is done rendering. */ + @property({type: Boolean}) + _loading = false; @property({type: Boolean}) loggedIn = false; @@ -787,12 +788,6 @@ export class GrDiff extends GestureEventListeners( this.clearDiffContent(); } - _loadingChanged(newValue?: boolean) { - if (newValue) { - this._cleanup(); - } - } - _lineWrappingObserver() { this._prefsChanged(this.prefs); } @@ -831,8 +826,9 @@ export class GrDiff extends GestureEventListeners( } _diffChanged(newValue?: DiffInfo) { + this._loading = true; + this._cleanup(); if (newValue) { - this._cleanup(); this._diffLength = this.getDiffLength(newValue); this._debounceRenderDiffTable(); } @@ -890,6 +886,7 @@ export class GrDiff extends GestureEventListeners( } _handleRenderContent() { + this._loading = false; this._unobserveIncrementalNodes(); this._incrementalNodeObserver = (dom( this diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_html.ts b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_html.ts index 3c4642c7c0..e9de9e71cc 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_html.ts +++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_html.ts @@ -446,7 +446,7 @@ export const htmlTemplate = html`