wip: refactor

This commit is contained in:
daiwei 2025-03-16 10:00:19 +08:00
parent 2caeecd595
commit acd2af24f6
3 changed files with 14 additions and 20 deletions

View 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
}

View 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)

View 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)
},
}