diff --git a/packages/app-shell/src/app-shell.js b/packages/app-shell/src/app-shell.js index 4e10b8486abbbb1522495db5543cbe34297c7dfb..91a1a21721ba8e074a943bde316cdf109fa2ebb9 100644 --- a/packages/app-shell/src/app-shell.js +++ b/packages/app-shell/src/app-shell.js @@ -626,24 +626,29 @@ export class AppShell extends ScopedElementsMixin(LitElement) { if (this._lastElm.tagName.toLowerCase() == activity.element.toLowerCase()) { return this._lastElm; } else { - this._attrObserver.disconnect(); + this._onActivityRemoved(this._lastElm); this._lastElm = undefined; } } const elm = document.createElement(activity.element); + this._onActivityAdded(elm); + this._lastElm = elm; + return elm; + } + _onActivityAdded(element) { for(const key of this.topic.attributes || []) { let value = sessionStorage.getItem('vpu-attr-' + key); if (value !== null) { - elm.setAttribute(key, value); + element.setAttribute(key, value); } } + this._attrObserver.observe(element, {attributes: true, attributeFilter: this.topic.attributes}); + } - this._attrObserver.observe(elm, {attributes: true, attributeFilter: this.topic.attributes}); - - this._lastElm = elm; - return elm; + _onActivityRemoved(element) { + this._attrObserver.disconnect(); } _renderActivity() {