From dddefcf768813e37cef9164f36a63ad35127678d Mon Sep 17 00:00:00 2001 From: pengx17 Date: Wed, 4 Dec 2024 06:20:03 +0000 Subject: [PATCH] fix(core): lit portal rerender (#9012) --- .../src/lit-react/lit-portal/lite-portal.tsx | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/packages/frontend/component/src/lit-react/lit-portal/lite-portal.tsx b/packages/frontend/component/src/lit-react/lit-portal/lite-portal.tsx index 9b2e97f979..b3b3da7868 100644 --- a/packages/frontend/component/src/lit-react/lit-portal/lite-portal.tsx +++ b/packages/frontend/component/src/lit-react/lit-portal/lite-portal.tsx @@ -37,6 +37,23 @@ class LitReactPortal extends LitElement { }; } + override attributeChangedCallback( + name: string, + oldVal: string, + newVal: string + ) { + super.attributeChangedCallback(name, oldVal, newVal); + if (name.toLowerCase() === 'portalid') { + listeners.forEach(l => + l({ + name: 'willUpdate', + target: this, + previousPortalId: oldVal, + }) + ); + } + } + // do not enable shadow root override createRenderRoot() { return this; @@ -60,17 +77,6 @@ class LitReactPortal extends LitElement { }) ); } - - override willUpdate(changedProperties: any) { - super.willUpdate(changedProperties); - listeners.forEach(l => - l({ - name: 'willUpdate', - target: this, - previousPortalId: changedProperties.get('portalId'), - }) - ); - } } declare global {