Skip to content

Commit d1a2015

Browse files
authoredFeb 24, 2025··
Merge pull request #17644 from sean-dp/bugfix/basecomponent-memory-leak
fix: Fixed BaseComponent | release ThemeService
2 parents 8ec5841 + 89c870c commit d1a2015

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed
 

‎packages/primeng/src/basecomponent/basecomponent.ts

+4
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ export class BaseComponent {
4646

4747
attrSelector = uuid('pc');
4848

49+
private themeChangeListeners: Function[] = [];
50+
4951
_getHostInstance(instance) {
5052
if (instance) {
5153
return instance ? (this['hostName'] ? (instance['name'] === this['hostName'] ? instance : this._getHostInstance(instance.parentInstance)) : instance.parentInstance) : undefined;
@@ -81,6 +83,7 @@ export class BaseComponent {
8183

8284
ngOnDestroy() {
8385
this._unloadScopedThemeStyles();
86+
this.themeChangeListeners.forEach((callback) => ThemeService.off('theme:change', callback));
8487
}
8588

8689
_loadStyles() {
@@ -160,6 +163,7 @@ export class BaseComponent {
160163
_themeChangeListener(callback = () => {}) {
161164
Base.clearLoadedStyleNames();
162165
ThemeService.on('theme:change', callback);
166+
this.themeChangeListeners.push(callback);
163167
}
164168

165169
cx(arg: string, rest?: string): string {

0 commit comments

Comments
 (0)
Please sign in to comment.