Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@shopify/cli-hydrogen@9.0.6
Patch Changes
Bump remix version (#2740) by @wizardlyhel
Turn on Remix
v3_singleFetch
future flag (#2708) by @wizardlyhel@shopify/create-hydrogen@5.0.16
Patch Changes
@shopify/hydrogen@2025.1.1
Patch Changes
Update
getProductOptions
to handle divergent product options. (#2747) by @wizardlyhelAdded the ability to optionally provide
language
data tocreateCustomerAccountClient
, and automatically pass it down to it fromcreateHydrogenContext
. (#2746) by @ruggishopIf present, the provided
language
will be used to set theuilocales
property in the Customer Account API request.Calls to
login()
will use the providedlanguage
without having to pass it explicitly viauiLocales
; however, if thelogin()
method isalready using its
uilocales
property, thelanguage
parameter coming from the context/constructor will be ignored. If nothing is explicitly passed,login()
will default tocontext.i18n.language
.Upgrade eslint to version 9 and unify eslint config across all packages (with the exception of the skeleton, which still keeps its own config) (#2716) by @liady
Bump remix version (#2740) by @wizardlyhel
Turn on Remix
v3_singleFetch
future flag (#2708) by @wizardlyhelB2B methods and props are now stable. Warnings are in place for unstable usages and will be removed completely in the next major version. (#2736) by @dustinfirman
Search for anywhere using
UNSTABLE_getBuyer
andUNSTABLE_setBuyer
is update accordingly.Update
createHydrogenContext
to remove theunstableB2b
optionUpdated dependencies [
3af2e453
,cd65685c
]:@shopify/hydrogen-react@2025.1.1
Patch Changes
Update
getProductOptions
to handle divergent product options. (#2747) by @wizardlyhelUpgrade eslint to version 9 and unify eslint config across all packages (with the exception of the skeleton, which still keeps its own config) (#2716) by @liady
@shopify/remix-oxygen@2.0.11
Patch Changes
Bump remix version (#2740) by @wizardlyhel
Turn on Remix
v3_singleFetch
future flag (#2708) by @wizardlyhelskeleton@2025.1.1
Patch Changes
Upgrade eslint to version 9 and unify eslint config across all packages (with the exception of the skeleton, which still keeps its own config) (#2716) by @liady
Bump remix version (#2740) by @wizardlyhel
Turn on Remix
v3_singleFetch
future flag (#2708) by @wizardlyhelRemix single fetch migration quick guide: https://remix.run/docs/en/main/start/future-flags#v3_singlefetch
Remix single fetch migration guide: https://remix.run/docs/en/main/guides/single-fetch
Note: If you have any routes that appends (or looks for) a search param named
_data
, make sure to rename it to something else.In your
vite.config.ts
, add the single fetch future flag.In your
entry.server.tsx
, addnonce
to the<RemixServer>
.const body = await renderToReadableStream( <NonceProvider> <RemixServer context={remixContext} url={request.url} + nonce={nonce} /> </NonceProvider>,
Update the
shouldRevalidate
function inroot.tsx
.Defaulting to no revalidation for root loader data to improve performance. When using this feature, you risk your UI getting out of sync with your server. Use with caution. If you are uncomfortable with this optimization, update the
return false;
toreturn defaultShouldRevalidate;
instead.For more details see: https://remix.run/docs/en/main/route/should-revalidate
Update
cart.tsx
to add a headers export and update todata
import usage.Deprecate
json
anddefer
import usage from@shopify/remix-oxygen
.Remove
json()
/defer()
in favor of raw objects.Single Fetch supports JSON objects and Promises out of the box, so you can return the raw data from your loader/action functions:
If you were using the second parameter of json/defer to set a custom status or headers on your response, you can continue doing so via the new data API:
If you are using legacy customer account flow or multipass, there are a couple more files that requires updating:
In
root.tsx
androutes/account.tsx
, add aheaders
export forloaderHeaders
.+ export const headers: HeadersFunction = ({loaderHeaders}) => loaderHeaders;
In
routes/account_.register.tsx
, add aheaders
export foractionHeaders
.+ export const headers: HeadersFunction = ({actionHeaders}) => actionHeaders;
If you are using multipass, in
routes/account_.login.multipass.tsx
a. export a
headers
export+ export const headers: HeadersFunction = ({actionHeaders}) => actionHeaders;
b. Update all
json
response wrapper toremixData
Updated dependencies [
3af2e453
,6bff6b62
,cd65685c
,8c717570
,4e81bd1b
,3ea25820
]: