mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
hook up validity changed event (#16824)
This commit is contained in:
@@ -12,9 +12,11 @@ import * as azdata from 'azdata';
|
|||||||
|
|
||||||
import { ComponentBase } from 'sql/workbench/browser/modelComponents/componentBase';
|
import { ComponentBase } from 'sql/workbench/browser/modelComponents/componentBase';
|
||||||
import { localize } from 'vs/nls';
|
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 { status } from 'vs/base/browser/ui/aria/aria';
|
||||||
import { ILogService } from 'vs/platform/log/common/log';
|
import { ILogService } from 'vs/platform/log/common/log';
|
||||||
|
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||||
|
import { IDisposable } from 'vs/base/common/lifecycle';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'modelview-loadingComponent',
|
selector: 'modelview-loadingComponent',
|
||||||
@@ -29,6 +31,7 @@ import { ILogService } from 'vs/platform/log/common/log';
|
|||||||
})
|
})
|
||||||
export default class LoadingComponent extends ComponentBase<azdata.LoadingComponentProperties> implements IComponent, OnDestroy, AfterViewInit {
|
export default class LoadingComponent extends ComponentBase<azdata.LoadingComponentProperties> implements IComponent, OnDestroy, AfterViewInit {
|
||||||
private _component: IComponentDescriptor;
|
private _component: IComponentDescriptor;
|
||||||
|
private _componentEventDisposable: IDisposable;
|
||||||
|
|
||||||
@Input() descriptor: IComponentDescriptor;
|
@Input() descriptor: IComponentDescriptor;
|
||||||
@Input() modelStore: IModelStore;
|
@Input() modelStore: IModelStore;
|
||||||
@@ -95,11 +98,19 @@ export default class LoadingComponent extends ComponentBase<azdata.LoadingCompon
|
|||||||
|
|
||||||
public addToContainer(items: { componentDescriptor: IComponentDescriptor }[]): void {
|
public addToContainer(items: { componentDescriptor: IComponentDescriptor }[]): void {
|
||||||
this._component = items[0].componentDescriptor;
|
this._component = items[0].componentDescriptor;
|
||||||
|
this.modelStore.eventuallyRunOnComponent(this._component.id, (component) => {
|
||||||
|
this._componentEventDisposable = component.registerEventHandler(async event => {
|
||||||
|
if (event.eventType === ComponentEventType.validityChanged) {
|
||||||
|
this.validate().catch(onUnexpectedError);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, false);
|
||||||
this.layout();
|
this.layout();
|
||||||
}
|
}
|
||||||
|
|
||||||
public removeFromContainer(_componentDescriptor: IComponentDescriptor): void {
|
public removeFromContainer(_componentDescriptor: IComponentDescriptor): void {
|
||||||
this._component = undefined;
|
this._component = undefined;
|
||||||
|
this._componentEventDisposable.dispose();
|
||||||
this.layout();
|
this.layout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user