Make gr-diff own "loading" state
The loading state is only used in gr-diff, so it makes sense to be also set in gr-diff. This change slightly changes the behavior of loading to flip to false when the content is rendered, not only after syntax highlighting is done. That is not a problem though, because the two places that read it only care about content, too. Change-Id: I2b4bda1ff8f336bce4a7a763d1479b2474a2beb7
This commit is contained in:
		| @@ -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[] { | ||||
|   | ||||
| @@ -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]]" | ||||
|   | ||||
| @@ -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); | ||||
|   }); | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -446,7 +446,7 @@ export const htmlTemplate = html` | ||||
|  | ||||
|           <template | ||||
|             is="dom-if" | ||||
|             if="[[showNoChangeMessage(loading, prefs, _diffLength, diff)]]" | ||||
|             if="[[showNoChangeMessage(_loading, prefs, _diffLength, diff)]]" | ||||
|           > | ||||
|             <div class="whitespace-change-only-message"> | ||||
|               This file only contains whitespace changes. Modify the whitespace | ||||
| @@ -457,7 +457,7 @@ export const htmlTemplate = html` | ||||
|       </gr-diff-highlight> | ||||
|     </gr-diff-selection> | ||||
|   </div> | ||||
|   <div class$="[[_computeNewlineWarningClass(_newlineWarning, loading)]]"> | ||||
|   <div class$="[[_computeNewlineWarningClass(_newlineWarning, _loading)]]"> | ||||
|     [[_newlineWarning]] | ||||
|   </div> | ||||
|   <div id="loadingError" class$="[[_computeErrorClass(errorMessage)]]"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Ole
					Ole