@@ -419,29 +419,43 @@ function hydrateTeleport(
419419 optimized : boolean ,
420420 ) => Node | null ,
421421) : Node | null {
422+ function hydrateDisabledTeleport (
423+ node : Node ,
424+ vnode : VNode ,
425+ targetStart : Node | null ,
426+ targetAnchor : Node | null ,
427+ ) {
428+ vnode . anchor = hydrateChildren (
429+ nextSibling ( node ) ,
430+ vnode ,
431+ parentNode ( node ) ! ,
432+ parentComponent ,
433+ parentSuspense ,
434+ slotScopeIds ,
435+ optimized ,
436+ )
437+ vnode . targetStart = targetStart
438+ vnode . targetAnchor = targetAnchor
439+ }
440+
422441 const target = ( vnode . target = resolveTarget < Element > (
423442 vnode . props ,
424443 querySelector ,
425444 ) )
445+ const disabled = isTeleportDisabled ( vnode . props )
426446 if ( target ) {
427- const disabled = isTeleportDisabled ( vnode . props )
428447 // if multiple teleports rendered to the same target element, we need to
429448 // pick up from where the last teleport finished instead of the first node
430449 const targetNode =
431450 ( target as TeleportTargetElement ) . _lpa || target . firstChild
432451 if ( vnode . shapeFlag & ShapeFlags . ARRAY_CHILDREN ) {
433452 if ( disabled ) {
434- vnode . anchor = hydrateChildren (
435- nextSibling ( node ) ,
453+ hydrateDisabledTeleport (
454+ node ,
436455 vnode ,
437- parentNode ( node ) ! ,
438- parentComponent ,
439- parentSuspense ,
440- slotScopeIds ,
441- optimized ,
456+ targetNode ,
457+ targetNode && nextSibling ( targetNode ) ,
442458 )
443- vnode . targetStart = targetNode
444- vnode . targetAnchor = targetNode && nextSibling ( targetNode )
445459 } else {
446460 vnode . anchor = nextSibling ( node )
447461
@@ -483,6 +497,10 @@ function hydrateTeleport(
483497 }
484498 }
485499 updateCssVars ( vnode , disabled )
500+ } else if ( disabled ) {
501+ if ( vnode . shapeFlag & ShapeFlags . ARRAY_CHILDREN ) {
502+ hydrateDisabledTeleport ( node , vnode , node , nextSibling ( node ) )
503+ }
486504 }
487505 return vnode . anchor && nextSibling ( vnode . anchor as Node )
488506}
0 commit comments