From 22927f22d6cef2dcd83fb583c060400f392a7453 Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Wed, 20 Jul 2022 09:01:14 +0100 Subject: [PATCH] don't call rm() twice if transition finishes before frame callback --- src/modules/style.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/style.ts b/src/modules/style.ts index 7d7ddbe..798c8f0 100755 --- a/src/modules/style.ts +++ b/src/modules/style.ts @@ -95,8 +95,12 @@ function applyRemoveStyle(vnode: VNode, rm: () => void): void { } let running = 0; + let started = false; const onRun = function (ev: TransitionEvent) { - if (ev.target === elm) running++; + if (ev.target === elm) { + started = true; + running++; + } }; const onEnd = function (ev: TransitionEvent) { if (ev.target === elm && --running === 0) { @@ -114,7 +118,7 @@ function applyRemoveStyle(vnode: VNode, rm: () => void): void { (elm as Element).addEventListener("transitionend", onEnd); nextFrame(function () { - if (running === 0) { + if (!started) { cleanUp(); rm(); }