From 31d9247eb7030a44d60e04551edc817195c1719e Mon Sep 17 00:00:00 2001 From: daiwei Date: Thu, 6 Mar 2025 14:31:47 +0800 Subject: [PATCH] wip: vapor interop --- .../runtime-core/src/components/BaseTransition.ts | 12 +++++++++--- packages/runtime-core/src/renderer.ts | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/runtime-core/src/components/BaseTransition.ts b/packages/runtime-core/src/components/BaseTransition.ts index 5f522b5cf6..e2f9bdf26b 100644 --- a/packages/runtime-core/src/components/BaseTransition.ts +++ b/packages/runtime-core/src/components/BaseTransition.ts @@ -139,7 +139,9 @@ export const BaseTransitionPropsValidators: Record = { } const recursiveGetSubtree = (instance: ComponentInternalInstance): VNode => { - const subTree = instance.subTree + const subTree = instance.type.__vapor + ? (instance as any).block + : instance.subTree return subTree.component ? recursiveGetSubtree(subTree.component) : subTree } @@ -564,8 +566,12 @@ function getInnerChild(vnode: VNode): VNode | undefined { export function setTransitionHooks(vnode: VNode, hooks: TransitionHooks): void { if (vnode.shapeFlag & ShapeFlags.COMPONENT && vnode.component) { - vnode.transition = hooks - setTransitionHooks(vnode.component.subTree, hooks) + if ((vnode.type as any).__vapor) { + ;(vnode.component as any).block.$transition = hooks + } else { + vnode.transition = hooks + setTransitionHooks(vnode.component.subTree, hooks) + } } else if (__FEATURE_SUSPENSE__ && vnode.shapeFlag & ShapeFlags.SUSPENSE) { vnode.ssContent!.transition = hooks.clone(vnode.ssContent!) vnode.ssFallback!.transition = hooks.clone(vnode.ssFallback!) diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index a73b5557de..39205ab1ea 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -2411,7 +2411,7 @@ function baseCreateRenderer( const getNextHostNode: NextFn = vnode => { if (vnode.shapeFlag & ShapeFlags.COMPONENT) { if ((vnode.type as ConcreteComponent).__vapor) { - return hostNextSibling((vnode.component! as any).block) + return hostNextSibling(vnode.anchor!) } return getNextHostNode(vnode.component!.subTree) } @@ -2608,7 +2608,7 @@ export function traverseStaticChildren( function locateNonHydratedAsyncRoot( instance: ComponentInternalInstance, ): ComponentInternalInstance | undefined { - const subComponent = instance.subTree.component + const subComponent = instance.subTree && instance.subTree.component if (subComponent) { if (subComponent.asyncDep && !subComponent.asyncResolved) { return subComponent -- 2.47.2