Releases: Sitecore/jss
22.1.2
22.1.2
🐛 Bug Fixes
[sitecore-jss-nextjs]
[templates/nextjs]
Update nextjs to 14.2.7 (#1911)- Make sure to update your app to use the latest Next.js version 14.2.7. It will fix the case when Embedded Personalization / A/B Testing is not executed after navigating through the router links
[sitecore-jss]
Fix isEditorActive returning false in XMCloud Pages (#1912)[templates/nextjs]
[XM Cloud]
FEAAS / BYOC Components are not visible on the page with running A/B test (#1914)- Make sure to update the PagePropsFactory plugins order, these plugins should be executed after the page-props-factory\plugins\personalize.ts plugin to ensure that personalized layout data is used:
- page-props-factory/plugins/component-themes.ts
- page-props-factory/plugins/component-props.ts
- Make sure to update the PagePropsFactory plugins order, these plugins should be executed after the page-props-factory\plugins\personalize.ts plugin to ensure that personalized layout data is used:
[sitecore-jss-nextjs]
Resolved an issue with redirects that was caused by the x-middleware-next header in Next.js. This header prevented the flow from being interrupted properly, resulting in redirects not functioning correctly in certain cases. (#1899)
22.1.1
22.1.1
🎉 New Features & Improvements
[XM Cloud]
[Metadata Mode]
[Next.js]
API was changed, next.js preview data provides a new parameterlayoutKind
therefore, please make the necessary updates in the app inplugins/preview-mode.ts
as shown in the following PR to experience a smooth upgrade.[sitecore-jss]
[sitecore-jss-nextjs]
Passsc_layoutKind
to GraphQLEditingService request header to support shared/final editing layouts (#1907)[sitecore-jss]
GraphQLRequestClient
'srequest
method now supports dynamic headers based on specific request (#1907)
client.request(query, variables, { headers })
22.1.0
22.1.0
🐛 Bug Fixes
[templates/nextjs]
[templates/react]
[templates/vue]
[templates/angular]
Changed formatting in temp/config to prevent parse issues in Unix systems (#1787)(#1791)[sitecore-jss]
GraphQLRequestClientFactory
type is updated andconfig
parameter is now optional. Since it should matchGraphQLRequestClient.createClientFactory
method return type (#1806)[templates/nextjs-sxa]
The banner variant of image component is fixed with supporting metadata mode. (#1826)[sitecore-jss]
[sitecore-jss-react]
DateField empty value is not treated as empty (#1836)[templates/nextjs-sxa]
Fix styles of title component in metadata mode. (#1839)[templates/nextjs-sxa]
Fix missing value of field property in Title component. (#1842)[templates/nextjs-sxa]
The background image in the Container component was being generated from the image ID instead of the mediaUrl parameter. This fix changes that behavior. (#1879)[templates/nextjs-sxa]
The caption of image component has been fixed. (#1874)[sitecore-jss-nextjs]
A bug has been fixed in the redirect middleware that occurred when a user clicked on a link rendered by the Link component from the Next.js library(next/link). (#1876) (#1891) (#1893)(#1895)[sitecore-jss-nextjs]
Disable nextjs image optimization in edit and preview modes. This prevents rendering issues in XM Cloud Pages Edit and Preview.
🎉 New Features & Improvements
[sitecore-jss-react]
Introduce ErrorBoundary component. All rendered components are wrapped with it and it will catch client or server side errors from any of its children, display appropriate message and prevent the rest of the application from failing. It accepts and can display custom error component and loading message if it is passed as a prop to parent Placeholder. (#1786)(#1790)(#1793)(#1794)(#1799)(#1807)(#1829)[sitecore-jss-nextjs]
Enforce CORS policy that matches Sitecore Pages domains for editing middleware API endpoints (#1798#1801)[sitecore-jss]
GraphQLRequestClient now can accept custom 'headers' in the constructor or via createClientFactory (#1806)[templates/nextjs]
Removed cors header for API endpoints from lib/next-config/plugins/cors-header plugin since cors is handled by API handlers / middlewares (#1806)[sitecore-jss-nextjs]
Updates to Next.js editing integration to further support secure hosting scenarios (on XM Cloud & Vercel) (#1832)[templates/nextjs-xmcloud]
[sitecore-jss]
JSS is now ready to support A/B testing and component-level personalization. This feature will be enabled in Pages after the current release. (#1844)(#1847)(#1848)[sitecore-jss]
[nextjs-xmcloud]
DictionaryService can now use asite
GraphQL query instead ofsearch
one to improve performance. This is currently only available for XMCloud deployments and is enabled withnextjs-xmcloud
add-on by default (#1804)(#1846)(commit)(commit)(commit)(commit)[templates/nextjs-sxa]
SXA components now use the NextImage component instead of the Image component from JSS lib for image optimization (#1843)(#1850)(#1860)[sitecore-jss-react]
[sitecore-jss-nextjs]
[sitecore-jss-angular]
[sitecore-jss-vue]
The default Hidden Rendering component now contains the text 'The component is hidden' (#1857)
🛠 Breaking Change
- Editing Integration Support: (#1776)(#1792)(#1773)(#1797)(#1800)(#1803)(#1806)(#1809)(#1814)(#1816)(#1819)(#1828)(#1835)(#1849)(#1831)(#1853)(#1854)(#1857)(#1862)(#1883)
[sitecore-jss-react]
IntroducesPlaceholderMetadata
component which supports the hydration of chromes on Pages by rendering the components and placeholders with required metadata.[sitecore-jss]
Chromes are hydrated based on the basis of neweditMode
property derived from LayoutData, which is defined as an enum consisting ofmetadata
andchromes
.ComponentConsumerProps
is removed. You might need to reuseWithSitecoreContextProps
type.[sitecore-jss-react]
[sitecore-jss-nextjs]
Introduce FieldMetadata component and functionality to render it when metadata field property is provided in the field's layout data. In such case the field component is wrapped with metadata markup to enable chromes hydration when editing in pages. Ability to render metadata has been added to the field rendering components for react and nextjs.[sitecore-jss-react]
IntroducedEditingScripts
component to render clientScripts / clientData in editing.[sitecore-jss-nextjs]
[template/nextjs-xmlcoud]
Add editMode to /editing/config endpoint response with configurable integration option.[sitecore-jss-nextjs]
Integrated a new Metadata Edit Mode in /api/editing/render endpoint.- Exported new
EditingMetadataPreviewData
type andisEditingMetadataPreviewData
guard function.
- Exported new
[sitecore-jss]
IntroducedGraphQLEditingService
class to fetch editing data in Metadata Edit Mode.[templates/nextjs-xmcloud]
Introduced /lib/graphql-editing-service to fetch editing data in Metadata Edit Mode.[templates/nextjs-xmcloud]
Added a new page-props-factory/plugins/preview-mode plugin to handle both Chromes and Metadata Edit Mode.[sitecore-jss]
layout-personalizer will mark components hidden by personalization by setting 'Hidden Rendering' component name in Metadata edit mode
[sitecore-jss]
Introduced /editing submodule that contains all editing related functionality. Editing utils are now available in /editing submodule. Editing utils exported from /utils marked as deprecated. (#1806)[sitecore-jss-nextjs]
EditingRenderMiddlewareresolvePageUrl
function now accepts an object(args: { serverUrl?: string; itemPath: string }) => string
instead of multiple parameters(serverUrl: string, itemPath: string) => string
.serverUrl
is now optional and omitted when Metadata Edit Mode is used.[templates/nextjs]
[sitecore-jss-nextjs]
[sitecore-jss]
Remove Partial rendering implementation as it will not be used by Pages in its current implementation - includes removing of EditingComponentPlaceholder component, few constants associated with it and RenderingType enum (#1821)[sitecore-jss-angular]
[sitecore-jss-schematics]
[templates/angular]
Upgrade Angular to v17 (#1837) (#1841)- Updated Angular and core dependencies to ~17.3.11
- Updated Typescript to ~5.2.2
- Updated import statements from zone.js/dist/zone-node to zone.js
[sitecore-jss/personalize]
[sitecore-jss-nextjs]
CdpHelper.getPersonalizedRewrite
signature changed to acceptvariantIds: string[]
as second parameter.CdpHelper.getContentId
was renamed toCdpHelper.getPageFriendlyId
. (#1848)
🧹 Chores
20.4.0
20.4.0
🛠 Breaking Changes
22.0.0
22.0.0
🛠 Breaking Changes
-
[sitecore-jss]
Switch to edge site query for XP and gets config sites + sxa sites (ignoring website) (#1772)- Previously introduced Boolean
useSiteQuery
switch for XMCloud users has been removed. - Search query usage has been removed.
- If you have any non-nextjs sites they should filter them out in multisite config plugin
- Previously introduced Boolean
-
[sitecore-jss-nextjs]
[templates/nextjs-xmcloud]
CloudSDK dependencies are updated to version ^0.3.0 (#1779)- Please ensure
@sitecore-cloudsdk/events
dependency is updated
- Please ensure
-
[sitecore-jss-nextjs]
Deprecated exports have been removed (#1780):sitecore-jss-nextjs
no longer exportsisEditorActive
,resetEditorChormes
,resolveUrl
,handleEditorFastRefresh
,getPublicUrl
functions. Usesitecore-jss-nextjs/utils
instead.getFEAASLibraryStylesheetLinks
function has been removed in favor ofgetComponentLibraryStylesheetLinks
-
[sitecore-jss-react]
[templates/react]
Deprecatedmedia
prop is removed from Image component. Usefield
prop instead (#1780)(#1785). -
[templates/react]
[templates/angular]
[templates/vue]
[templates/node-headless-ssr-experience-edge]
[sitecore-jss-react]
[sitecore-jss-nextjs]
(#1783):- GraphQL-based services can now only be initialized with clientFactory parameter. Previously deprecated option of providing endpoint and apiKey has been removed
- Removed deprecated defaultProps react component property
-
[templates/nextjs]
GraphQL-based services can now only be initialized with clientFactory parameter. Previously deprecated option of providing endpoint and apiKey has been removed (#1780). -
[templates/nextjs]
[templates/react]
[templates/vue]
[templates/angular]
Deprecated JSS_APP_NAME environment variable has been removed (#1780).
🧹 Chores
- Security vulnerabilities audit (1778)
20.3.3
20.3.2
21.7.1
21.7.0
21.7.0
🎉 New Features & Improvements
[sitecore-jss-angular]
Enhance Placeholder component error handling (#1744)- Placeholder component supports failed event that is triggered when the component fails to render.
- Handle error in the Placeholder component more gracefully by using an appropriate error JssCanActivateRedirectError type for redirects handling.
- JssModule.forChild now accepts component or component map type as a parameter.
- Fixed missing guard this context when calling canActivate guard
[sitecore-jss]
[templates/nextjs-xmcloud]
Load the content styles for the RichText component (#1670)(#1683) (#1684) (#1693)[templates/react]
[sitecore-jss-react]
Replace package 'deep-equal' with 'fast-deep-equal'. No functionality change only performance improvement (#1719) (#1665)[templates/nextjs-xmcloud]
[sitecore-jss]
[sitecore-jss-nextjs]
[sitecore-jss-react]
Add support for loading appropriate stylesheets whenever a theme is applied to BYOC and SXA components by introducing new function getComponentLibraryStylesheetLinks, which replaces getFEAASLibraryStylesheetLinks (which has been marked as deprecated) (#1722)[templates/nextjs-xmcloud]
[sitecore-jss-nextjs]
Add protected endpoint which provides configuration information (the sitecore packages used by the app and all registered components) to be used to determine feature compatibility on Pages side. (#1724 #1734)[sitecore-jss-nextjs]
[templates/nextjs]
[BYOC] Component Builder integration endpoint (#1729)[sitecore-jss]
[templates/nextjs-xmcloud]
Enable site GraphQL query for mutlisite in XMCloud instead of default search one. Site query should take "Valid for environment" SXA site setting into account when returning site list. (#1739)- To enable this on your existing app, modify the \scripts\config\plugins\multisite.ts file and add "useSiteQuery: true" to GraphQLSiteInfoService constructor call
[sitecore-jss-nextjs]
Setsecure
,httpOnly
,sameSite
attributes to thesc_site
cookie by default: (#1746)[sitecore-jss]
GraphQL Client Retry Improvements:- Handle additional string error codes like ECONNRESET, ETIMEDOUT, EPROTO. Can configure more using DefaultRetryStrategy.
- Retries has now been enabled by default with a default value of 3. It can be disabled by configuring it to 0.
- [Retry-After] header now falls back to the default delay time when it comes out to be empty.
(#1755) (#1759) (#1763)
[sitecore-jss-nextjs]
[templates/nextjs-xmcloud]
Updated @sitecore-cloudsdk/* dependencies to ^0.2.3[templates/nextjs-xmcloud]
Updated @sitecore/components to ^1.1.10
🐛 Bug Fixes
[templates/nextjs]
[templates/nextjs-styleguide]
Modify all GraphQLRequestClient import statements so that it gets imported from the /graphql submodule (#1728)[templates/node-headless-ssr-proxy]
[node-headless-ssr-proxy]
Add sc_site qs parameter to Layout Service requests by default (#1660)[templates/nextjs-sxa]
Fix Image component when there is using Banner variant which set property background-image when image is empty. (#1689) (#1692)[templates/nextjs-sxa]
Fix featureshow Grid column
in Experience Editor. (#1704)[sitecore-jss-nextjs] [templates/nextjs-xmcloud]
SDK initialization rejections are now correctly handled. Errors should no longer occur after getSDK() promises resolve when they shouldn't (for example, getting Events SDK in development environment) (#1712 #1715 #1716)[sitecore-jss-nextjs]
Fix redirects middleware for working with absolute url where is using site language context (#1727) (#1737)[templates/nextjs-sxa]
Fix base styles of SXA components. Remove conflicted styles of BasicSite template. (#1757)
🛠 Breaking Changes
[sitecore-jss-nextjs]
[templates/nextjs]
Upgrade to Next 14 (#1720)(#1723)- Due to changes in peer dependencies, please ensure your app uses Next version 14