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) const child = findTransitionBlock(block)
if (!child) { if (!child) {
// set transition hooks on fragment for reusing during it's updating // set transition hooks on fragment for reusing during it's updating
if (isFrag) setTransitionHooksToFragment(block, hooks) if (isFrag) setTransitionHooksOnFragment(block, hooks)
return hooks return hooks
} }
@ -184,7 +184,7 @@ export function applyTransitionHooks(
) )
resolvedHooks.delayedLeave = delayedLeave resolvedHooks.delayedLeave = delayedLeave
setTransitionHooks(child, resolvedHooks) setTransitionHooks(child, resolvedHooks)
if (isFrag) setTransitionHooksToFragment(block, resolvedHooks) if (isFrag) setTransitionHooksOnFragment(block, resolvedHooks)
// fallthrough attrs // fallthrough attrs
if (fallthroughAttrs && instance.hasFallthrough) { if (fallthroughAttrs && instance.hasFallthrough) {
@ -295,17 +295,7 @@ export function findTransitionBlock(
return child return child
} }
export function setTransitionToInstance( export function setTransitionHooksOnFragment(
block: VaporComponentInstance,
hooks: VaporTransitionHooks,
): void {
const child = findTransitionBlock(block.block)
if (!child) return
setTransitionHooks(child, hooks)
}
export function setTransitionHooksToFragment(
block: Block, block: Block,
hooks: VaporTransitionHooks, hooks: VaporTransitionHooks,
): void { ): void {
@ -313,14 +303,18 @@ export function setTransitionHooksToFragment(
setTransitionHooks(block, hooks) setTransitionHooks(block, hooks)
} else if (isArray(block)) { } else if (isArray(block)) {
for (let i = 0; i < block.length; i++) { for (let i = 0; i < block.length; i++) {
setTransitionHooksToFragment(block[i], hooks) setTransitionHooksOnFragment(block[i], hooks)
} }
} }
} }
export function setTransitionHooks( export function setTransitionHooks(
block: TransitionBlock, block: TransitionBlock | VaporComponentInstance,
hooks: VaporTransitionHooks, hooks: VaporTransitionHooks,
): void { ): void {
if (isVaporComponent(block)) {
block = findTransitionBlock(block.block) as TransitionBlock
if (!block) return
}
block.$transition = hooks block.$transition = hooks
} }

View File

@ -26,7 +26,7 @@ import {
import { import {
resolveTransitionHooks, resolveTransitionHooks,
setTransitionHooks, setTransitionHooks,
setTransitionHooksToFragment, setTransitionHooksOnFragment,
} from './Transition' } from './Transition'
import { import {
type ObjectVaporComponent, type ObjectVaporComponent,
@ -124,7 +124,7 @@ export const VaporTransitionGroup: ObjectVaporComponent = decorate({
slottedBlock = slots.default && slots.default() slottedBlock = slots.default && slots.default()
// store props and state on fragment for reusing during insert new items // store props and state on fragment for reusing during insert new items
setTransitionHooksToFragment(slottedBlock, { setTransitionHooksOnFragment(slottedBlock, {
props: cssTransitionProps, props: cssTransitionProps,
state, state,
} as VaporTransitionHooks) } as VaporTransitionHooks)

View File

@ -41,7 +41,7 @@ import type { RawSlots, VaporSlot } from './componentSlots'
import { renderEffect } from './renderEffect' import { renderEffect } from './renderEffect'
import { createTextNode } from './dom/node' import { createTextNode } from './dom/node'
import { optimizePropertyLookup } from './dom/prop' import { optimizePropertyLookup } from './dom/prop'
import { setTransitionToInstance } from './components/Transition' import { setTransitionHooks as setVaporTransitionHooks } from './components/Transition'
// mounting vapor components and slots in vdom // mounting vapor components and slots in vdom
const vaporInteropImpl: Omit< const vaporInteropImpl: Omit<
@ -78,7 +78,7 @@ const vaporInteropImpl: Omit<
instance.rawPropsRef = propsRef instance.rawPropsRef = propsRef
instance.rawSlotsRef = slotsRef instance.rawSlotsRef = slotsRef
if (vnode.transition) { if (vnode.transition) {
setTransitionToInstance( setVaporTransitionHooks(
instance, instance,
vnode.transition as VaporTransitionHooks, vnode.transition as VaporTransitionHooks,
) )
@ -138,7 +138,7 @@ const vaporInteropImpl: Omit<
}, },
setTransitionHooks(component, hooks) { setTransitionHooks(component, hooks) {
setTransitionToInstance(component as any, hooks as VaporTransitionHooks) setVaporTransitionHooks(component as any, hooks as VaporTransitionHooks)
}, },
} }