From 9c45b870215e83bf8436a9202ca897036e6bfc83 Mon Sep 17 00:00:00 2001 From: Alan Ren Date: Wed, 18 Aug 2021 15:45:57 -0700 Subject: [PATCH] hook up validity changed event (#16824) --- .../modelComponents/loadingComponent.component.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/sql/workbench/browser/modelComponents/loadingComponent.component.ts b/src/sql/workbench/browser/modelComponents/loadingComponent.component.ts index 88c2f9fbfe..c4bbd817c7 100644 --- a/src/sql/workbench/browser/modelComponents/loadingComponent.component.ts +++ b/src/sql/workbench/browser/modelComponents/loadingComponent.component.ts @@ -12,9 +12,11 @@ import * as azdata from 'azdata'; import { ComponentBase } from 'sql/workbench/browser/modelComponents/componentBase'; import { localize } from 'vs/nls'; -import { IComponent, IComponentDescriptor, IModelStore } from 'sql/platform/dashboard/browser/interfaces'; +import { ComponentEventType, IComponent, IComponentDescriptor, IModelStore } from 'sql/platform/dashboard/browser/interfaces'; import { status } from 'vs/base/browser/ui/aria/aria'; import { ILogService } from 'vs/platform/log/common/log'; +import { onUnexpectedError } from 'vs/base/common/errors'; +import { IDisposable } from 'vs/base/common/lifecycle'; @Component({ selector: 'modelview-loadingComponent', @@ -29,6 +31,7 @@ import { ILogService } from 'vs/platform/log/common/log'; }) export default class LoadingComponent extends ComponentBase implements IComponent, OnDestroy, AfterViewInit { private _component: IComponentDescriptor; + private _componentEventDisposable: IDisposable; @Input() descriptor: IComponentDescriptor; @Input() modelStore: IModelStore; @@ -95,11 +98,19 @@ export default class LoadingComponent extends ComponentBase { + this._componentEventDisposable = component.registerEventHandler(async event => { + if (event.eventType === ComponentEventType.validityChanged) { + this.validate().catch(onUnexpectedError); + } + }); + }, false); this.layout(); } public removeFromContainer(_componentDescriptor: IComponentDescriptor): void { this._component = undefined; + this._componentEventDisposable.dispose(); this.layout(); }