33 ExtensionContext ,
44 Uri ,
55 ViewColumn ,
6- WebviewPanel ,
76 window ,
87} from "vscode" ;
98import {
@@ -49,8 +48,6 @@ export class DataExtensionsEditorView extends AbstractWebview<
4948 ToDataExtensionsEditorMessage ,
5049 FromDataExtensionsEditorMessage
5150> {
52- private static mostRecentlyActivePanel : WebviewPanel | undefined = undefined ;
53-
5451 private readonly autoModeler : AutoModeler ;
5552
5653 private externalApiUsages : ExternalApiUsage [ ] ;
@@ -71,6 +68,15 @@ export class DataExtensionsEditorView extends AbstractWebview<
7168 databaseItem : DatabaseItem ,
7269 ) => Promise < void > ,
7370 private readonly revealItemInDetailsPanel : ( usage : Usage ) => Promise < void > ,
71+ private readonly handleViewBecameActive : (
72+ view : DataExtensionsEditorView ,
73+ ) => void ,
74+ private readonly handleViewWasDisposed : (
75+ view : DataExtensionsEditorView ,
76+ ) => void ,
77+ private readonly isMostRecentlyActiveView : (
78+ view : DataExtensionsEditorView ,
79+ ) => boolean ,
7480 ) {
7581 super ( ctx ) ;
7682
@@ -100,7 +106,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
100106
101107 panel . onDidChangeViewState ( async ( ) => {
102108 if ( panel . active ) {
103- await this . onPanelBecameActive ( ) ;
109+ this . handleViewBecameActive ( this ) ;
104110 await this . updateModelDetailsPanelState (
105111 this . externalApiUsages ,
106112 this . databaseItem ,
@@ -109,29 +115,12 @@ export class DataExtensionsEditorView extends AbstractWebview<
109115 } ) ;
110116
111117 panel . onDidDispose ( async ( ) => {
112- await this . onPanelWasDisposed ( ) ;
118+ this . handleViewWasDisposed ( this ) ;
113119 } ) ;
114120
115121 await this . waitForPanelLoaded ( ) ;
116122 }
117123
118- private async onPanelBecameActive ( ) : Promise < void > {
119- const panel = await this . getPanel ( ) ;
120- DataExtensionsEditorView . mostRecentlyActivePanel = panel ;
121- }
122-
123- private async onPanelWasDisposed ( ) : Promise < void > {
124- const panel = await this . getPanel ( ) ;
125- if ( panel === DataExtensionsEditorView . mostRecentlyActivePanel ) {
126- DataExtensionsEditorView . mostRecentlyActivePanel = undefined ;
127- }
128- }
129-
130- private async isTheMostRecentlyActivePanel ( ) : Promise < boolean > {
131- const panel = await this . getPanel ( ) ;
132- return panel === DataExtensionsEditorView . mostRecentlyActivePanel ;
133- }
134-
135124 protected async getPanelConfig ( ) : Promise < WebviewPanelConfig > {
136125 return {
137126 viewId : "data-extensions-editor" ,
@@ -323,7 +312,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
323312 t : "setExternalApiUsages" ,
324313 externalApiUsages : this . externalApiUsages ,
325314 } ) ;
326- if ( await this . isTheMostRecentlyActivePanel ( ) ) {
315+ if ( this . isMostRecentlyActiveView ( this ) ) {
327316 await this . updateModelDetailsPanelState (
328317 this . externalApiUsages ,
329318 this . databaseItem ,
@@ -448,6 +437,9 @@ export class DataExtensionsEditorView extends AbstractWebview<
448437 Mode . Framework ,
449438 this . updateModelDetailsPanelState ,
450439 this . revealItemInDetailsPanel ,
440+ this . handleViewBecameActive ,
441+ this . handleViewWasDisposed ,
442+ this . isMostRecentlyActiveView ,
451443 ) ;
452444 await view . openView ( ) ;
453445 } ) ;
0 commit comments