From 1170cea51dddfee16bfe68b06ee759ada491cd27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sampo=20Kivist=C3=B6?= Date: Tue, 26 Apr 2022 17:30:37 +0300 Subject: [PATCH] Optimization: avoid looping to find dom element when componentWillUnmount and componentWillDisappear are not defined --- packages/inferno/src/DOM/unmounting.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/inferno/src/DOM/unmounting.ts b/packages/inferno/src/DOM/unmounting.ts index 265e38770..3419cbd15 100644 --- a/packages/inferno/src/DOM/unmounting.ts +++ b/packages/inferno/src/DOM/unmounting.ts @@ -61,14 +61,16 @@ export function unmount(vNode, animations: AnimationQueues) { let childAnimations = animations; ref = vNode.ref; if (!isNullOrUndef(ref)) { - const domEl = findDOMfromVNode(vNode, true) as Element; + let domEl : Element | null = null; if (isFunction(ref.onComponentWillUnmount)) { + domEl = findDOMFromVNode(vNode, true); ref.onComponentWillUnmount(domEl, vNode.props || EMPTY_OBJ); } if (isFunction(ref.onComponentWillDisappear)) { childAnimations = new AnimationQueues(); - addDisappearAnimationHook(animations, ref, domEl, flags, vNode.props); + domEl = domEl || findDOMFromVNode(vNode, true); + addDisappearAnimationHook(animations, ref, domEl as Element, flags, vNode.props); } } unmount(children, childAnimations);