Skip to content

Conversation

@brophdawg11
Copy link
Contributor

@brophdawg11 brophdawg11 commented Dec 6, 2022

Support a requestContext in the static handler similar to getLoadContext in Remix

Route loaders/actions accept a context for SSR uses only as of now:

let routes = [{
  path: '/',
  async loader({ request, params, context }) {
    let profile = await getUserProfile(context.user);
    return json({ profile });
  }
}

This is provided via the query/queryRoute methods on the server. Went with requestContext since it's request-specific on the server and because we already return a static handler "context" from query.

// entry-server.js
let requestContext = { user: getUser(req); }
let { query, queryRoute } = createStaticHandler(routes);
let context = query('/', { requestContext });
// or
let response = queryRoute('/', { routeId: 'root', requestContext });

Closes remix-run/remix#4733 (perf)

@changeset-bot
Copy link

changeset-bot bot commented Dec 6, 2022

🦋 Changeset detected

Latest commit: 7f26490

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

This PR includes changesets to release 5 packages
Name Type
@remix-run/router Patch
react-router Patch
react-router-dom Patch
react-router-dom-v5-compat Patch
react-router-native 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

@brophdawg11 brophdawg11 merged commit a5e233d into release-next Dec 6, 2022
@brophdawg11 brophdawg11 deleted the brophdawg11/request-context branch December 6, 2022 22:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants