Skip to content

Commit 8cc9c25

Browse files
committed
trigger the actual same level boundary
1 parent 6b0b137 commit 8cc9c25

File tree

2 files changed

+29
-14
lines changed

2 files changed

+29
-14
lines changed

packages/next/src/client/components/layout-router.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,21 @@ function LoadingBoundary({
445445
loading: LoadingModuleData | Promise<LoadingModuleData>
446446
children: React.ReactNode
447447
}): JSX.Element {
448+
if (
449+
process.env.NODE_ENV !== 'production' &&
450+
process.env.__NEXT_DEVTOOL_SEGMENT_EXPLORER
451+
) {
452+
const { SegmentBoundaryTriggerNode } =
453+
require('../../next-devtools/userspace/app/segment-explorer-node') as typeof import('../../next-devtools/userspace/app/segment-explorer-node')
454+
455+
children = (
456+
<>
457+
<SegmentBoundaryTriggerNode />
458+
{children}
459+
</>
460+
)
461+
}
462+
448463
// If loading is a promise, unwrap it. This happens in cases where we haven't
449464
// yet received the loading data from the server — which includes whether or
450465
// not this layout has a loading component at all.

packages/next/src/next-devtools/userspace/app/segment-explorer-node.tsx

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,19 @@ export function SegmentViewStateNode({ page }: { page: string }) {
7676
return null
7777
}
7878

79+
export function SegmentBoundaryTriggerNode() {
80+
const { boundaryType } = useSegmentState()
81+
let segmentNode: React.ReactNode = null
82+
if (boundaryType === 'loading') {
83+
segmentNode = <LoadingSegmentNode />
84+
} else if (boundaryType === 'not-found') {
85+
segmentNode = <NotFoundSegmentNode />
86+
} else if (boundaryType === 'error') {
87+
segmentNode = <ErrorSegmentNode />
88+
}
89+
return segmentNode
90+
}
91+
7992
export function SegmentViewNode({
8093
type,
8194
pagePath,
@@ -85,22 +98,9 @@ export function SegmentViewNode({
8598
pagePath: string
8699
children?: ReactNode
87100
}): React.ReactNode {
88-
const { boundaryType } = useSegmentState()
89-
90-
const isChildBoundary = type !== 'layout' && type !== 'template'
91-
92-
let segmentNode = (
101+
const segmentNode = (
93102
<SegmentTrieNode key={type} type={type} pagePath={pagePath} />
94103
)
95-
if (boundaryType && boundaryType !== type && isChildBoundary) {
96-
if (boundaryType === 'loading') {
97-
segmentNode = <LoadingSegmentNode />
98-
} else if (boundaryType === 'not-found') {
99-
segmentNode = <NotFoundSegmentNode />
100-
} else if (boundaryType === 'error') {
101-
segmentNode = <ErrorSegmentNode />
102-
}
103-
}
104104

105105
return (
106106
<>

0 commit comments

Comments
 (0)