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

fix: don't stash away original history methods so other libs can monkeypatch it #11657

Merged
merged 2 commits into from Jan 17, 2024

Conversation

dummdidumm
Copy link
Member

@dummdidumm dummdidumm commented Jan 17, 2024

Some other libraries might hook into history.replaceState/pushState to do additional work. This no longer works since the introduction of shallow routing because we're stashing away the original history methods. This PR adjusts the DEV time check logic so that this is no longer necessary.
Fixes #11499
Fixes vercel/analytics#121


Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.

Tests

  • Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

  • If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

Edits

  • Please ensure that 'Allow edits from maintainers' is checked. PRs without this option may be closed.

…nkeypatch it

Some other libraries might hook into `history.replaceState/pushState` to do additional work. This no longer works since the introduction of shallow routing because we're stashing away the original history methods. This PR adjusts the DEV time check logic so that this is no longer necessary.
Related to vercel/analytics#121
Copy link

changeset-bot bot commented Jan 17, 2024

🦋 Changeset detected

Latest commit: 3bf2146

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@sveltejs/kit Patch

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

Copy link
Member

@Rich-Harris Rich-Harris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one small suggestion but otherwise LGTM

packages/kit/src/runtime/client/client.js Outdated Show resolved Hide resolved
Copy link
Member

@benmccann benmccann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you for fixing this!!

packages/kit/src/runtime/client/client.js Outdated Show resolved Hide resolved
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
@lukasmalkmus
Copy link

lukasmalkmus commented Jan 18, 2024

This PR, released as part of v2.3.4 results in a new warning that wasn't previously there:

[Warning] Avoid using `history.pushState(...)` and `history.replaceState(...)` as these will conflict with SvelteKit's router. Use the `pushState` and `replaceState` imports from `$app/navigation` instead. (client.js, line 2580)

I'm not using history as suggested by the warning. I'm using goto in a couple of places, from $app/navigation. I haven't changed anything. The warning is not present with v2.3.3.

From a quick test, commenting out all the goto calls still resulted in the warning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Google Analytics (GA4) not working in SvelteKit 2 Page changes are no longer tracked in SvelteKit 2
4 participants