Releases: bigcommerce/catalyst
@bigcommerce/catalyst-core@1.0.1
Patch Changes
- #2448
e4444a2
Thanks @chanceaclark! - Fixes an issue where the anonymous session wasn't getting cleared after an actual session was established.
@bigcommerce/eslint-config-catalyst@1.0.0
Major Changes
- #2435
cd4bd60
Thanks @matthewvolk! - Release 1.0.0 (seecore/CHANGELOG.md
for more details)
Patch Changes
- #1933
f292236
Thanks @dependabot! - Manual changes on a dependency bumps.
@bigcommerce/create-catalyst@1.0.0
Major Changes
- #2435
cd4bd60
Thanks @matthewvolk! - Release 1.0.0 (seecore/CHANGELOG.md
for more details)
@bigcommerce/catalyst-makeswift@1.0.0
Major Changes
7f1e73d
Thanks @matthewvolk! - Release 1.0.0 (seecore/CHANGELOG.md
for more details)
Patch Changes
11ecddf
Thanks @jorgemoya! - Re-enable Customer Group Slot component281be00
Thanks @agurtovoy! - fix: configure NextAuth cookies to work inside of the Makeswift Builder's canvasdea8eab
Thanks @agurtovoy! - fix: flicker on rerendering<ProductList />
2cdd078
Thanks @arvinpoddar! - fix: bump makeswift runtime version tov0.24.0
, fixing issue with editing on SSGd pages5c198be
Thanks @agurtovoy! - fix: disable cookie- and language-based locale detection in the buildera298d28
Thanks @agurtovoy! - Upgrade@makeswift/runtime
to the 0.23.3 release.34ac728
Thanks @arvinpoddar! - refactor: upgrade Makeswift runtime and use provided utility to construct draft request5ea6d6d
Thanks @agurtovoy! - Usability/terminology fix, Accordions -> Accordion8e8b31c
Thanks @pvaladez! - Add core/lib/makeswift/components folder to tailwind config content property so that tailwind classes can be used in components there.89e912e
Thanks @agurtovoy! - Upgrade to the latest version of Makeswift runtime (0.24.6)e5ad65c
Thanks @fikrikarim! - Fix: missing Add-to-cart feedback onintegrations/makeswift
branch: Toast success notification now appears when Add to cart is clicked. Cart button badge in the header now updates to show1
when the first item is added.11ecddf
Thanks @jorgemoya! - Unify Makeswift component registrationse6a98a4
Thanks @arvinpoddar! - fix: upgrade Makeswift runtime. Includes prop editing performance improvements, a bug fix for link editing, and a fix to avoid CSS class collision by using a different Emotion key.e968366
Thanks @agurtovoy! - fix:useCompareDrawer
does not throw on missing context037663b
Thanks @agurtovoy! - fix: configureNEXT_LOCALE
cookie to work inside of the Makeswift Builder's canvas881a532
Thanks @agurtovoy! - fix(theming): changing price label colors has no effect12d60da
Thanks @agurtovoy! - fix: deletion ofNEXT_LOCALE
cookie triggers page rerendered3202d
Thanks @agurtovoy! - fix: support switching of the page's locale in the Makeswift Builder
@bigcommerce/catalyst-core@1.0.0
Major Changes
-
6b17bdb
Thanks @jorgemoya! - Introduce Soul VIBE UI library to the repository. -
Added a collection of reusable primitives with modern styles
-
Prebuilt sections and page templates that are easy to use
-
Fast performance and modern patterns leveraging the latest features of Next.js
-
Easy customization to best represent your brand
-
Utilize @conform-to/react for progressively enhanced HTML forms
Join the discussion here for more details of this major milestone for Catalyst!
Minor Changes
589c91a
Thanks @chancellorclark! - Enable cart restoration on non-persistent cart logouts.
Migration
Update the logout mutation to include the cartEntityId
variable + the cartUnassignResult
node and make sure the client.fetch
method contains the new variable.
-mutation LogoutMutation {
+mutation LogoutMutation($cartEntityId: String) {
- logout {
+ logout(cartEntityId: $cartEntityId) {
result
+ cartUnassignResult {
+ cart {
+ entityId
+ }
+ }
}
}
-
32a28b9
Thanks @chancellorclark! - Use isomorphic-dompurify to santize any sort of shopper supplied input. -
f039b2c
Thanks @jorgemoya! - Properly handleBigCommerceGQLError
in actions, by returning the error messages from the request. -
dd66f96
Thanks @matthewvolk! - In order to maintain parity with Stencil's 404 page, we wanted to allow the user to search from the 404 page. Since the search included with the header component is fully featured, we included a CTA to open the same search that you get when clicking the search icon in the header.
Migration
Most changes are additive, so they should hopefully be easy to resolve if flagged for merge conflicts. Change #3 below replaces the Search state with the new search context, be sure to pay attention to the new
- This change adds a new directory under
core/
calledcontext/
containing asearch-context.tsx
file. Since this is a new file, there shouldn't be any merge conflicts SearchProvider
is imported intocore/app/providers
and replaces the React fragment (<>
) that currently wraps<Toaster>
and{children}
- In
core/vibes/soul/primitives/navigation
, replaceuseState
withuseSearch
imported from the new context file, and update the dependency arrays for theuseEffect
's in theNavigation component
- Add search
Button
that callssetIsSearchOpen(true)
to theNotFound
component incore/vibes/sections/not-found/index.tsx
-
62b891c
Thanks @jordanarldt! - Adds support for nested web page children / trees. Restructure web page routing to support a layout file. -
44342ee
Thanks @chancellorclark! - Sets a default session when any user first visits the page. -
ff57b8a
Thanks @eugene(yevhenii)kuzmenko! - Pass analytics cookies to checkout mutation to preserve the analytics session whenever shopper redirects to the external checkout -
067d5a4
Thanks @chancellorclark! - Move the anonymous session into it's own cookie, separate from Auth.js in order to have better non-persistent cart support.
Migration
If you were using await signIn('anonymous', { redirect: false });
, you'll need to migrate over to using the await anonymousSignIn()
function. Otherwise, we am only changing the underlying logic in existing API's so pulling in the changes should immediately pick this up.
-
9b3541d
Thanks @chancellorclark! - Adds a new analytics provider meant to replace the other provider. This provider is built being framework agnostic but exposes a react provider to use within context. The initial implementation comes with a Google Analytics provider with some basic events to get started. We need to add some other events around starting checkout, banners, consent loading, and search. This change is additive only so no migration is needed until consumption. -
bd3bc8b
Thanks @chancellorclark! - Implement the new analytics provider, utilizing the GoogleAnalytics provider as the first analytics solution.
Most changes are additive so merge conflicts should be easy to resolve. In order to use the new provider from the previous provider, if it's already not setup in the BigCommerce control panel for checkout analytics, you'll need to add the GA4 property ID. This will automatically be used by the new GoogleAnalytics provider.
-
70afa5a
Thanks @eugene(yevhenii)kuzmenko! - Dispatch Visit started and Product Viewed analytics events -
da2a462
Thanks @bookernath! - Add currency selector to header -
f3b4d90
Thanks @jordanarldt! - Add Wishlist account pages and public wishlist page -
59ff1ce
Thanks @chancellorclark! - Fetches the stores URLs on build which can remove the need of setting NEXT_PUBLIC_BIGCOMMERCE_CDN_HOSTNAME. The environment variable is still provided in case customization is needed. -
a0e6425
Thanks @eugene(yevhenii)kuzmenko! - Adds analytics cookies needed for native analytics.
This is a add-only change, so migration should be as simple as pulling in the new code.
a601f7e
Thanks @jorgemoya! - This refactor optimizes compare for caching and the eventual use of dynamicIO.
Key modifications include:
- Our query functions now take in all params required for fetching, instead of accessing dynamic variables internally. This is important to serialize arguments if we want to eventually
use cache
. - Use
Streamable.from
to generate our streaming props that are passed to our UI components.
Migration instructions:
-
Updated
/app/[locale]/(default)/compare/page.tsx
to useStreamable.from
pattern. -
Renamed
getCompareData
query togetComparedProducts
.- Updated query
- Returns empty
[]
if no product ids are passed
-
c6e38a6
Thanks @chancellorclark! - Reorganize and cleanup files: -
Moved
core/context/search-context
tocore/lib/search
. -
Moved
core/client/mutations/add-cart-line-item.ts
andcore/client/mutations/create-cart.ts
intocore/lib/cart/*
. -
Removed
core/client/queries/get-cart.ts
in favor of a smaller, more focused query withincore/lib/cart/validate-cart.ts
.
Migration
-
Replace imports from
~/context/search-context
to~/lib/search
. -
Replace imports from
~/client/mutations/
to~/lib/cart/
. -
Remove any direct imports from
~/client/queries/get-cart.ts
and use the newvalidate-cart.ts
query instead. If you need the previousgetCart
function, you can copy it from the old file and adapt it to your needs. -
7b3b81c
Thanks @matthewvolk! - Replaces the REST-poweredclient.fetchShippingZones
method with a GraphQL-powered query containing thesite.settings.shipping.supportedShippingDestinations
field.
Migration:
- The return type of
getShippingCountries
has the same shape as theCountry
BigCommerce GraphQL type, so you should be able to copy the graphql query fromcore/app/[locale]/(default)/cart/page-data.ts
into your project and replace the existinggetShippingCountries
method in there. - Remove the argument
data.geography
from thegetShippingCountries
invocation incore/app/[locale]/(default)/cart/page.tsx
- Finally, you should be able to delete the file
core/client/management/get-shipping-zones.ts
assuming it is no longer referenced anywhere incore/
53e0b5e
Thanks @jorgemoya! - This refactor optimizes category PLP for caching and the eventual use of dynamicIO. With these changes we leverage data caching to hit mostly cache data for guest shoppers in different locales and with different currencies.
Key modifications include:
- We don't stream in Category page data, instead it's a blocking call that will redirect to
notFound
when category is not found. Same for metadata. - Our query functions now take in all params required for fetching, instead of accessing dynamic variables internally. This is important to serialize arguments if we want to eventually
use cache
. - Use
Streamable.from
to generate our streaming pro...
@bigcommerce/catalyst-client@1.0.0
Major Changes
- #2435
cd4bd60
Thanks @matthewvolk! - Release 1.0.0 (seecore/CHANGELOG.md
for more details)
Minor Changes
-
#2370
20b8788
Thanks @matthewvolk! - Remove thexAuthToken
config parameter from@bigcommerce/catalyst-client
. The client no longer has any dependency on a BigCommerce access token, now that we have replaced the/v2/shipping/zones
REST API call with an appropriate GraphQL field (site.settings.shipping.supportedShippingDestinations
).Migration:
- If you are using the version of the client published to NPM, simply ensure you are using at least
@bigcommerce/catalyst-client@0.16.0
or higher. - If you are using the client in your pnpm workspace, simply remove the
xAuthToken
references inpackages/client/src/client.ts
as well as thefetchShippingZones
method. - Remove the reference to
xAuthToken
incore/client/index.ts
- If you are using the version of the client published to NPM, simply ensure you are using at least
@bigcommerce/create-catalyst@0.22.0
Minor Changes
-
#2296
da1f486
Thanks @matthewvolk! - Expands the supported Node.js version of thecreate-catalyst
CLI to^20
and^22
. The version of Node.js required to run the CLI is not necessarily tied to the version of Node.js required to run Catalyst; the CLI requires at least version 18 to run because it depends on global Fetch API support being enabled by default. More context in #2296. -
#2136
e5f1ac9
Thanks @chanceaclark! - Support node 22.
Patch Changes
- #2017
c1519d4
Thanks @RomanKrasinskyi! - Add es-419 to list of allowed locale for selecting in CLI
@bigcommerce/catalyst-client@0.15.0
Minor Changes
-
#1914
f039b2c
Thanks @jorgemoya! - GQL requests that respond as200
but have anerrors
field will now be properly handled by the client and throw a properBigCommerceGQLError
response with the message reason from the API. This will provide a more detailed description of why the GQL request errored out.API errors will still be handled and attribute the errored status as the message with this change as
BigCommerceAPIError
. -
0aa23e2
- Add anonError
callback to in order to handle auth and invalid sessions. -
#2124
4a00a27
Thanks @jorgemoya! - Add anerrorPolicy
option for GQL requests. Acceptsnone
,ignore
,all
. Defaults tonone
which throws an error if there are GQL errors,ignore
returns the data without error object, andall
returns both data and errors.
Patch Changes
-
c830100
- Manual changes on a dependency bumps. -
#2226
3b14d66
Thanks @bookernath! - Add GraphQL operation name and type to GraphQL URL as query parameters to improve server logging of GraphQL operations
@bigcommerce/catalyst-core@0.24.2
Patch Changes
8016f01
Thanks @bookernath! - Bump Next.js to latest version to address CVE
@bigcommerce/create-catalyst@0.21.0
Minor Changes
- #1986
b3d55a2
Thanks @RomanKrasinskyi! - Allow configuration of locales when creating a new channel
Patch Changes
- #1957
9e1d942
Thanks @chanceaclark! - Removes the ability for command injection in the CLI