}
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
}
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!)
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)
}
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