]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
wip: refactor
authordaiwei <daiwei521@126.com>
Sun, 16 Mar 2025 02:00:19 +0000 (10:00 +0800)
committerdaiwei <daiwei521@126.com>
Sun, 16 Mar 2025 02:00:19 +0000 (10:00 +0800)
packages/runtime-vapor/src/components/Transition.ts
packages/runtime-vapor/src/components/TransitionGroup.ts
packages/runtime-vapor/src/vdomInterop.ts

index 73cf570fc6902ec32c423f280a3b4a5cfc5578e6..484d7f39435f6ae8d5ecd013cf85e06b8c6fef85 100644 (file)
@@ -170,7 +170,7 @@ export function applyTransitionHooks(
   const child = findTransitionBlock(block)
   if (!child) {
     // set transition hooks on fragment for reusing during it's updating
-    if (isFrag) setTransitionHooksToFragment(block, hooks)
+    if (isFrag) setTransitionHooksOnFragment(block, hooks)
     return hooks
   }
 
@@ -184,7 +184,7 @@ export function applyTransitionHooks(
   )
   resolvedHooks.delayedLeave = delayedLeave
   setTransitionHooks(child, resolvedHooks)
-  if (isFrag) setTransitionHooksToFragment(block, resolvedHooks)
+  if (isFrag) setTransitionHooksOnFragment(block, resolvedHooks)
 
   // fallthrough attrs
   if (fallthroughAttrs && instance.hasFallthrough) {
@@ -295,17 +295,7 @@ export function findTransitionBlock(
   return child
 }
 
-export function setTransitionToInstance(
-  block: VaporComponentInstance,
-  hooks: VaporTransitionHooks,
-): void {
-  const child = findTransitionBlock(block.block)
-  if (!child) return
-
-  setTransitionHooks(child, hooks)
-}
-
-export function setTransitionHooksToFragment(
+export function setTransitionHooksOnFragment(
   block: Block,
   hooks: VaporTransitionHooks,
 ): void {
@@ -313,14 +303,18 @@ export function setTransitionHooksToFragment(
     setTransitionHooks(block, hooks)
   } else if (isArray(block)) {
     for (let i = 0; i < block.length; i++) {
-      setTransitionHooksToFragment(block[i], hooks)
+      setTransitionHooksOnFragment(block[i], hooks)
     }
   }
 }
 
 export function setTransitionHooks(
-  block: TransitionBlock,
+  block: TransitionBlock | VaporComponentInstance,
   hooks: VaporTransitionHooks,
 ): void {
+  if (isVaporComponent(block)) {
+    block = findTransitionBlock(block.block) as TransitionBlock
+    if (!block) return
+  }
   block.$transition = hooks
 }
index af8c8300f7615666c0e9671cfce3d647128c4118..5733ff7d2c6a2b9999bdc0973f0a7b9c01b480e9 100644 (file)
@@ -26,7 +26,7 @@ import {
 import {
   resolveTransitionHooks,
   setTransitionHooks,
-  setTransitionHooksToFragment,
+  setTransitionHooksOnFragment,
 } from './Transition'
 import {
   type ObjectVaporComponent,
@@ -124,7 +124,7 @@ export const VaporTransitionGroup: ObjectVaporComponent = decorate({
     slottedBlock = slots.default && slots.default()
 
     // store props and state on fragment for reusing during insert new items
-    setTransitionHooksToFragment(slottedBlock, {
+    setTransitionHooksOnFragment(slottedBlock, {
       props: cssTransitionProps,
       state,
     } as VaporTransitionHooks)
index 78d92affc58aa36167dc0acace0f1b27b761b62c..3c3ae58e92c908f57a8eeeefd2bcb39c7d352e25 100644 (file)
@@ -41,7 +41,7 @@ import type { RawSlots, VaporSlot } from './componentSlots'
 import { renderEffect } from './renderEffect'
 import { createTextNode } from './dom/node'
 import { optimizePropertyLookup } from './dom/prop'
-import { setTransitionToInstance } from './components/Transition'
+import { setTransitionHooks as setVaporTransitionHooks } from './components/Transition'
 
 // mounting vapor components and slots in vdom
 const vaporInteropImpl: Omit<
@@ -78,7 +78,7 @@ const vaporInteropImpl: Omit<
     instance.rawPropsRef = propsRef
     instance.rawSlotsRef = slotsRef
     if (vnode.transition) {
-      setTransitionToInstance(
+      setVaporTransitionHooks(
         instance,
         vnode.transition as VaporTransitionHooks,
       )
@@ -138,7 +138,7 @@ const vaporInteropImpl: Omit<
   },
 
   setTransitionHooks(component, hooks) {
-    setTransitionToInstance(component as any, hooks as VaporTransitionHooks)
+    setVaporTransitionHooks(component as any, hooks as VaporTransitionHooks)
   },
 }