@@ -670,45 +670,40 @@ export function registerSuspenseInstanceRetry(
670
670
instance . _reactRetry = callback ;
671
671
}
672
672
673
- function isHydratableNode ( node : Node ) {
674
- const nodeType = node . nodeType ;
675
- if ( nodeType === ELEMENT_NODE || nodeType === TEXT_NODE ) {
676
- return true ;
677
- }
678
- if ( enableSuspenseServerRenderer ) {
679
- if ( nodeType === COMMENT_NODE ) {
680
- return true ;
673
+ function getNextHydratable ( node ) {
674
+ // Skip non-hydratable nodes.
675
+ for ( ; node != null ; node = node . nextSibling ) {
676
+ const nodeType = node . nodeType ;
677
+ if ( nodeType === ELEMENT_NODE || nodeType === TEXT_NODE ) {
678
+ break ;
679
+ }
680
+ if ( enableSuspenseServerRenderer ) {
681
+ if ( nodeType === COMMENT_NODE ) {
682
+ break ;
683
+ }
684
+ const nodeData = ( node : any ) . data ;
685
+ if (
686
+ nodeData === SUSPENSE_START_DATA ||
687
+ nodeData === SUSPENSE_FALLBACK_START_DATA ||
688
+ nodeData === SUSPENSE_PENDING_START_DATA
689
+ ) {
690
+ break ;
691
+ }
681
692
}
682
- const nodeData = ( node : any ) . data ;
683
- return (
684
- nodeData === SUSPENSE_START_DATA ||
685
- nodeData === SUSPENSE_FALLBACK_START_DATA ||
686
- nodeData === SUSPENSE_PENDING_START_DATA
687
- ) ;
688
693
}
689
- return false ;
694
+ return ( node : any ) ;
690
695
}
691
696
692
697
export function getNextHydratableSibling (
693
698
instance : HydratableInstance ,
694
699
) : null | HydratableInstance {
695
- let node = instance . nextSibling ;
696
- // Skip non-hydratable nodes.
697
- while ( node != null && ! isHydratableNode ( node ) ) {
698
- node = node . nextSibling ;
699
- }
700
- return ( node : any ) ;
700
+ return getNextHydratable ( instance . nextSibling ) ;
701
701
}
702
702
703
703
export function getFirstHydratableChild (
704
704
parentInstance : Container | Instance ,
705
705
) : null | HydratableInstance {
706
- let node = parentInstance . firstChild ;
707
- // Skip non-hydratable nodes.
708
- while ( node != null && ! isHydratableNode ( node ) ) {
709
- node = node . nextSibling ;
710
- }
711
- return ( node : any ) ;
706
+ return getNextHydratable ( parentInstance . firstChild ) ;
712
707
}
713
708
714
709
export function hydrateInstance (
0 commit comments