Release January 20, 2026#2582
Open
github-actions[bot] wants to merge 218 commits into
Open
Conversation
fix: use immediate input value for Enter navigation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
fix: get redirectTo from the url params instead of the headers
0fc4cb5 to
6629180
Compare
…ieve the flags in the middleware as well.
… for plugins. Disabledby default.
Feature/private catalog
Fix/config fixes
… customization of the header
…w local LayoutDefault in new LayoutNavigation Unchaged for now (except import paths). Changes coming in next commits.
… components
LayoutNavigation was a big file that mixed the navigation overlay,
the header content, and the layout shell.
Customizing the header — sticky behavior, owning the container styling,
or adding a beforeHeader slot — required forking the whole file or
copying chunks of @graphcommerce/next-ui's LayoutDefault.
The header is now four reusable pieces:
- HeaderContainer the <Container component='header'> wrapper, lifted
out of LayoutDefault so each project owns its
header container.
- Header the header content (Logo, DesktopNavBar,
DesktopNavActions, MobileTopRight).
- MenuOverlay the NavigationProvider + NavigationOverlay.
- LayoutDefault a local copy that renders the `header` slot raw,
since the wrapping now lives in HeaderContainer.
Keeping LayoutDefault as a project-local copy makes the layout shell
itself customizable: tweaking the grid, the fab container, the
beforeHeader slot or the sticky behavior no longer requires patching
@graphcommerce/next-ui or copying the file — the example owns it.
Combined with the extracted Header / MenuOverlay / HeaderContainer,
projects can override any single piece without forking the rest.
LayoutNavigation becomes a slim orchestrator that composes them.
LayoutMinimal is updated to use the same local LayoutDefault +
HeaderContainer so both layouts share the canonical header pattern.
There is no visual change:
HeaderContainer carries the same styling that the
header slot of next-ui's LayoutDefault used to apply.
…tion Feature/layout navigation
Blog pages never fetched the global config in getStaticProps, so GlobalConfigProvider received undefined and the footer rendered empty. Add fetchGlobalConfig + globalConfig prop to the blog index/post/tagged pages, matching the pattern in pages/[...url].tsx.
…content fix: fetch globalConfig on blog pages so global content renders
storyblok-js-client pins the space cache-version (cv) per process on the first published request and never refreshes it (cache.clear defaults to 'manual'), so published content stays frozen at the process-start cv until restart. On long-lived servers (multi-pod Kubernetes) published edits never become visible. Add refreshStoryblokCacheVersion(), which re-fetches cdn/spaces/me at most once per the new storyblok.cacheVersionTtl config (seconds, default 60; 0 refreshes on every read) to advance the pinned cv, and call it before published fetchStory/fetchStories/fetchAllStories reads. Skipped for preview/draft and in dev. Exported so on-demand revalidation can force an immediate refresh.
@tiptap/suggestion (pulled in transitively via @storyblok/react → @storyblok/richtext) declares @floating-ui/dom as a peerDependency, which Yarn does not auto-install. Nothing provided it, so production builds failed with "Module not found: Can't resolve '@floating-ui/dom'". Declare it directly in the example so it ships with the seed project. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…storyblok feat(storyblok-ui): refresh pinned Storyblok cache-version on a TTL
…ning On-demand revalidation had to call refreshStoryblokCacheVersion(), which calls getStoryblokApi(); in a context where storyblokInit has not run (e.g. a serverless cache-notify route) that logs "You can't use getStoryblokApi if you're not loading apiPlugin". Replace it with the exported requestStoryblokCacheVersionRefresh(), which only flips a flag the next published read consumes — it never touches the Storyblok client, so it never warns. The internal refresh keeps running in the fetch functions, where Storyblok is always initialized. The previously exported refreshStoryblokCacheVersion() is removed; use requestStoryblokCacheVersionRefresh() instead.
…storyblok fix(storyblok-ui): flag-based cache-version refresh, no apiPlugin war…
Bug: The `up` (back/breadcrumb) link title is a Lingui `t` macro string, but it was constructed inline in the returned `props` object, after `await`ing the layout/page/config GraphQL queries. Lingui translates against a single global active-locale i18n instance, so a concurrent static-generation request for a different locale could call `i18n.activate()` during those awaits and cause the `t\`...\`` title to be rendered in the wrong language for the page being generated. Fix: Compute the `up` object (and its `t\`...\`` title) synchronously at the top of every affected `getStaticProps`, before any `await` yields control, so the translation is captured with the correct locale for the current request. Applied uniformly across the magento-graphcms, magento-open-source, and magento-storyblok example pages and the demo-magento-graphcommerce copy pages. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…b-locale-race Fix/i18n up breadcrumb locale race
Disabled PaginationItems were still given a `component`/`href`, turning them into anchors. Crawlers follow those links to an unbounded number of list pages, needlessly building up the static page cache. Only pass `component`/`href` when the item is enabled; disabled items fall back to a plain button, so bots no longer have a link to crawl. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ed-no-link fix(next-ui): don't render disabled pagination items as links
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Automated release PR from canary branch