Skip to content

Commit 58249e3

Browse files
authored
Dispose event subscriptions in method modeling view (#2882)
1 parent 75540b4 commit 58249e3

File tree

1 file changed

+36
-30
lines changed

1 file changed

+36
-30
lines changed

extensions/ql-vscode/src/model-editor/method-modeling/method-modeling-view-provider.ts

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -116,38 +116,44 @@ export class MethodModelingViewProvider
116116
}
117117

118118
private registerToModelingStoreEvents(): void {
119-
this.modelingStore.onModeledMethodsChanged(async (e) => {
120-
if (this.webviewView && e.isActiveDb) {
121-
const modeledMethod = e.modeledMethods[this.method?.signature ?? ""];
122-
if (modeledMethod) {
119+
this.push(
120+
this.modelingStore.onModeledMethodsChanged(async (e) => {
121+
if (this.webviewView && e.isActiveDb) {
122+
const modeledMethod = e.modeledMethods[this.method?.signature ?? ""];
123+
if (modeledMethod) {
124+
await this.webviewView.webview.postMessage({
125+
t: "setModeledMethod",
126+
method: modeledMethod,
127+
});
128+
}
129+
}
130+
}),
131+
);
132+
133+
this.push(
134+
this.modelingStore.onModifiedMethodsChanged(async (e) => {
135+
if (this.webviewView && e.isActiveDb && this.method) {
136+
const isModified = e.modifiedMethods.has(this.method.signature);
123137
await this.webviewView.webview.postMessage({
124-
t: "setModeledMethod",
125-
method: modeledMethod,
138+
t: "setMethodModified",
139+
isModified,
126140
});
127141
}
128-
}
129-
});
130-
131-
this.modelingStore.onModifiedMethodsChanged(async (e) => {
132-
if (this.webviewView && e.isActiveDb && this.method) {
133-
const isModified = e.modifiedMethods.has(this.method.signature);
134-
await this.webviewView.webview.postMessage({
135-
t: "setMethodModified",
136-
isModified,
137-
});
138-
}
139-
});
140-
141-
this.modelingStore.onSelectedMethodChanged(async (e) => {
142-
if (this.webviewView) {
143-
this.method = e.method;
144-
await this.webviewView.webview.postMessage({
145-
t: "setSelectedMethod",
146-
method: e.method,
147-
modeledMethod: e.modeledMethod,
148-
isModified: e.isModified,
149-
});
150-
}
151-
});
142+
}),
143+
);
144+
145+
this.push(
146+
this.modelingStore.onSelectedMethodChanged(async (e) => {
147+
if (this.webviewView) {
148+
this.method = e.method;
149+
await this.webviewView.webview.postMessage({
150+
t: "setSelectedMethod",
151+
method: e.method,
152+
modeledMethod: e.modeledMethod,
153+
isModified: e.isModified,
154+
});
155+
}
156+
}),
157+
);
152158
}
153159
}

0 commit comments

Comments
 (0)