From e9661f90d014dfefaa716d5b262308d7161753bf Mon Sep 17 00:00:00 2001 From: Matt Irvine Date: Wed, 13 Jun 2018 16:51:06 -0700 Subject: [PATCH] Prevent components from being defined multiple times (#1627) --- src/sql/parts/modelComponents/viewBase.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sql/parts/modelComponents/viewBase.ts b/src/sql/parts/modelComponents/viewBase.ts index 8a9a16ec49..a00349e4f9 100644 --- a/src/sql/parts/modelComponents/viewBase.ts +++ b/src/sql/parts/modelComponents/viewBase.ts @@ -40,7 +40,6 @@ export abstract class ViewBase extends AngularDisposable implements IModelView { abstract serverInfo: sqlops.ServerInfo; private _onEventEmitter = new Emitter(); - initializeModel(rootComponent: IComponentShape, validationCallback: (componentId: string) => Thenable): void { let descriptor = this.defineComponent(rootComponent); this.rootDescriptor = descriptor; @@ -50,6 +49,10 @@ export abstract class ViewBase extends AngularDisposable implements IModelView { } private defineComponent(component: IComponentShape): IComponentDescriptor { + let existingDescriptor = this.modelStore.getComponentDescriptor(component.id); + if (existingDescriptor) { + return existingDescriptor; + } let typeId = componentRegistry.getIdForTypeMapping(component.type); if (!typeId) { // failure case