diff --git a/src/utils/react.ts b/src/utils/react.ts index 2971364..04b2c6f 100644 --- a/src/utils/react.ts +++ b/src/utils/react.ts @@ -46,13 +46,21 @@ export function fakeRenderComponent(fun: Function, customHooks: any = {}): any { } export function wrapReactType(node: any, prop: any = 'type') { - return (node[prop] = { ...node[prop] }); + if (node[prop]?.__DECKY_WRAPPED) { + return node[prop]; + } else { + return (node[prop] = { ...node[prop], __DECKY_WRAPPED: true }); + } } export function wrapReactClass(node: any, prop: any = 'type') { - const cls = node[prop]; - const wrappedCls = class extends cls {}; - return (node[prop] = wrappedCls); + if (node[prop]?.__DECKY_WRAPPED) { + return node[prop]; + } else { + const cls = node[prop]; + const wrappedCls = class extends cls { static __DECKY_WRAPPED = true; }; + return (node[prop] = wrappedCls); + } } export function getReactInstance(o: HTMLElement | Element | Node) {