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

Reuse server data if the client load is invalidated #6641

Closed
wants to merge 3 commits into from

Conversation

mquandalle
Copy link

@mquandalle mquandalle commented Sep 7, 2022

Fixes #6459

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. All changesets should be patch until SvelteKit 1.0

@changeset-bot
Copy link

changeset-bot bot commented Sep 7, 2022

🦋 Changeset detected

Latest commit: f0fcc0d

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

@mquandalle
Copy link
Author

I think this issue was caused by #6309. So far I couldn't come up with an implementation that would work with both test cases, but @dummdidumm you probably have a better understanding than me of the logic here.

@@ -759,6 +756,8 @@ export function create_client({ target, base, trailing_slash }) {
throw server_data_node;
}

const prev_server_data_node = (!changed?.url && previous?.server) || null;
Copy link
Author

Choose a reason for hiding this comment

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

I realize that changed.url is not the perfect condition, because we will want to reuse the server data of a layout load even if the url changes, but I'm not familiar enough with the code base to determine the correct condition.

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.

Data from +layout.server.ts is null after navigating
1 participant