Skip to content

Commit dddbd96

Browse files
authored
fix(transition): fix cancel leave regression (#5974)
fix #5973
1 parent a0c5776 commit dddbd96

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

packages/runtime-dom/src/components/Transition.ts

+8-6
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,11 @@ export function resolveTransitionProps(
174174
done && done()
175175
}
176176

177-
let isLeaving = false
178-
const finishLeave = (el: Element, done?: () => void) => {
179-
isLeaving = false
177+
const finishLeave = (
178+
el: Element & { _isLeaving?: boolean },
179+
done?: () => void
180+
) => {
181+
el._isLeaving = false
180182
removeTransitionClass(el, leaveFromClass)
181183
removeTransitionClass(el, leaveToClass)
182184
removeTransitionClass(el, leaveActiveClass)
@@ -223,8 +225,8 @@ export function resolveTransitionProps(
223225
},
224226
onEnter: makeEnterHook(false),
225227
onAppear: makeEnterHook(true),
226-
onLeave(el, done) {
227-
isLeaving = true
228+
onLeave(el: Element & { _isLeaving?: boolean }, done) {
229+
el._isLeaving = true
228230
const resolve = () => finishLeave(el, done)
229231
addTransitionClass(el, leaveFromClass)
230232
if (__COMPAT__ && legacyClassEnabled) {
@@ -234,7 +236,7 @@ export function resolveTransitionProps(
234236
forceReflow()
235237
addTransitionClass(el, leaveActiveClass)
236238
nextFrame(() => {
237-
if (!isLeaving) {
239+
if (!el._isLeaving) {
238240
// cancelled
239241
return
240242
}

0 commit comments

Comments
 (0)