-
-
Notifications
You must be signed in to change notification settings - Fork 2k
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
fix: only call afterNavigate
once on start when SSR is disabled
#13593
base: main
Are you sure you want to change the base?
Conversation
🦋 Changeset detectedLatest commit: 1a183bf The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good, once you've answered my question on the code you can self-merge 👍
@@ -1423,7 +1430,7 @@ async function navigate({ | |||
|
|||
is_navigating = true; | |||
|
|||
if (started) { | |||
if (started && nav.navigation.type !== 'enter') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this necessary? When could started be true but the type enter?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this was only added for type narrowing. TypeScript doesn’t know that we won’t use navigate
with the “enter” navigation type after the app has started. Meanwhile, navigating.current
has been typed to never have the “enter” navigation type.
fixes #13573
This PR changes the unexpected behaviour of
afterNavigate
being called twice when SSR is disabled to only once (same as when SSR is enabled). It was being called twice: once with type 'enter' and again with type 'goto' because we initialised the app and usedgoto
under the hood to render the page client-side. Now, it should only be called once with type 'enter'. This also adjusts the docs to state that a navigation with type 'enter' is when the app starts and not just when it's hydrated.Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
Tests
pnpm test
and lint the project withpnpm lint
andpnpm check
Changesets
pnpm changeset
and following the prompts. Changesets that add features should beminor
and those that fix bugs should bepatch
. Please prefix changeset messages withfeat:
,fix:
, orchore:
.Edits