Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parallel routes: return a 404 when a parallel route does not have a default page/do not match #47872

Merged
merged 60 commits into from
Apr 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
dfd3fae
apply patch correctly for last segment
feedthejim Mar 22, 2023
739a584
re-render layout on parallel key change
feedthejim Mar 22, 2023
a51b1db
refactor for readability
feedthejim Mar 22, 2023
b120b12
implement parallel routes default
feedthejim Mar 23, 2023
a79fe3f
remove useless check
feedthejim Mar 23, 2023
452770a
remove leftover fn
feedthejim Mar 23, 2023
98f6eb2
enable tests in dev
feedthejim Mar 23, 2023
8829681
fix test + small refactor
feedthejim Mar 23, 2023
c6326ca
fix test
feedthejim Mar 23, 2023
59b3634
support @children
feedthejim Mar 24, 2023
6abf5fa
re-enable test for build
feedthejim Mar 24, 2023
3084422
fix adjacent child check for directory only
feedthejim Mar 24, 2023
47a6f00
Merge branch 'canary' into feedthejim/next-748-verify-partial-renderi…
feedthejim Mar 24, 2023
1192d34
fix lint
feedthejim Mar 24, 2023
9ade248
initial implementation
feedthejim Mar 25, 2023
64284d8
refactors
feedthejim Mar 26, 2023
4900fa2
fix hmr
feedthejim Mar 27, 2023
9b83aef
change referrer computation method
feedthejim Mar 27, 2023
92cbf42
add segment tree override
feedthejim Mar 27, 2023
999b516
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 27, 2023
b8bde07
fix types
feedthejim Mar 27, 2023
0fde8ff
fix test
feedthejim Mar 27, 2023
02d037b
update tests
feedthejim Mar 27, 2023
be9e620
rewrite tests
feedthejim Mar 27, 2023
8fdb943
remove logs
feedthejim Mar 27, 2023
94d4a59
add unit test for referrer parsing
feedthejim Mar 27, 2023
9fc9bc9
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 27, 2023
45b1a43
remove log
feedthejim Mar 27, 2023
acb3b29
update comments
feedthejim Mar 27, 2023
d097f9f
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 27, 2023
92237b9
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 27, 2023
09c6ce6
refactor: provide more consistent interface for matchers with pathnam…
wyattjoh Mar 27, 2023
ce365a9
refactor: formatting updates
wyattjoh Mar 27, 2023
be0c36c
fix: added key prop's to test files
wyattjoh Mar 28, 2023
b2ac7dc
fix: corrected invalid slot name
wyattjoh Mar 28, 2023
853f9fd
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 28, 2023
eac2b2d
address comments
feedthejim Mar 28, 2023
6783565
fix windows test
feedthejim Mar 28, 2023
6001b80
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 28, 2023
a1f00be
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 28, 2023
d615593
use check for tests
feedthejim Mar 28, 2023
d66a842
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 28, 2023
f6ab0f7
fix tests failures
feedthejim Mar 28, 2023
76c9726
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 28, 2023
61cd219
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 29, 2023
58d247d
restire test position
feedthejim Mar 28, 2023
ceaa38f
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 31, 2023
1496087
update injection method
feedthejim Mar 31, 2023
9b168df
make sure we patch the tree if the previous page was a __DEFAULT__
feedthejim Mar 31, 2023
148f04f
pass the previous cache node when populating the cache tree
feedthejim Mar 31, 2023
08cdb07
add a fast refresh reducer
feedthejim Mar 31, 2023
ab4533f
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Mar 31, 2023
f7041fe
remove misc change
feedthejim Mar 31, 2023
1512bc8
Merge branch 'canary' into feedthejim/next-749-implement-route-interc…
feedthejim Apr 3, 2023
266c003
pass the existing cache node nonethelesss
feedthejim Apr 3, 2023
c4589bf
skip __DEFAULT__ item when applying fligth data to the cache
feedthejim Apr 3, 2023
5e4abc0
don't overwrite cache node if already ready
feedthejim Apr 3, 2023
6ce7349
add 404 by default for parallel routes
feedthejim Apr 3, 2023
b59a53d
Merge branch 'canary' into feedthejim/next-918-make-default-pagets-404
feedthejim Apr 4, 2023
4a369f8
Merge branch 'canary' into feedthejim/next-918-make-default-pagets-404
feedthejim Apr 6, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { notFound } from './not-found'

export default function NoopParallelRouteDefault() {
return null
notFound()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export default function Page({ params }) {
return <div>default modal slot</div>
}
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,27 @@ createNextDescribe(
expect(html).toContain('parallel/(new)/layout')
expect(html).toContain('parallel/(new)/@baz/nested/page')
})

it('should throw a 404 when no matching parallel route is found', async () => {
const browser = await next.browser('/parallel-tab-bar')
// we make sure the page is available through navigating
await check(
() => browser.waitForElementByCss('#home').text(),
'Tab bar page (@children)'
)
await browser.elementByCss('#view-duration-link').click()
await check(
() => browser.waitForElementByCss('#view-duration').text(),
'View duration'
)

// fetch /parallel-tab-bar/view-duration
const res = await next.fetch(
`${next.url}/parallel-tab-bar/view-duration`
)
const html = await res.text()
expect(html).toContain('page could not be found')
})
})

describe('route intercepting', () => {
Expand Down