Skip to content

Releases: bigcommerce/catalyst

@bigcommerce/catalyst-core@1.0.1

01 Jul 15:07
47c4253
Compare
Choose a tag to compare

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

16 Jun 22:29
0d161c5
Compare
Choose a tag to compare

Major Changes

Patch Changes

@bigcommerce/create-catalyst@1.0.0

16 Jun 22:29
0d161c5
Compare
Choose a tag to compare

Major Changes

@bigcommerce/catalyst-makeswift@1.0.0

16 Jun 23:35
a3cded6
Compare
Choose a tag to compare

Major Changes

Patch Changes

  • 11ecddf Thanks @jorgemoya! - Re-enable Customer Group Slot component
  • 281be00 Thanks @agurtovoy! - fix: configure NextAuth cookies to work inside of the Makeswift Builder's canvas
  • dea8eab Thanks @agurtovoy! - fix: flicker on rerendering <ProductList />
  • 2cdd078 Thanks @arvinpoddar! - fix: bump makeswift runtime version to v0.24.0, fixing issue with editing on SSGd pages
  • 5c198be Thanks @agurtovoy! - fix: disable cookie- and language-based locale detection in the builder
  • a298d28 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 request
  • 5ea6d6d Thanks @agurtovoy! - Usability/terminology fix, Accordions -> Accordion
  • 8e8b31c 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 on integrations/makeswift branch: Toast success notification now appears when Add to cart is clicked. Cart button badge in the header now updates to show 1 when the first item is added.
  • 11ecddf Thanks @jorgemoya! - Unify Makeswift component registrations
  • e6a98a4 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 context
  • 037663b Thanks @agurtovoy! - fix: configure NEXT_LOCALE cookie to work inside of the Makeswift Builder's canvas
  • 881a532 Thanks @agurtovoy! - fix(theming): changing price label colors has no effect
  • 12d60da Thanks @agurtovoy! - fix: deletion of NEXT_LOCALE cookie triggers page rerender
  • ed3202d Thanks @agurtovoy! - fix: support switching of the page's locale in the Makeswift Builder

@bigcommerce/catalyst-core@1.0.0

16 Jun 22:29
0d161c5
Compare
Choose a tag to compare

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

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 handle BigCommerceGQLError 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

  1. This change adds a new directory under core/ called context/ containing a search-context.tsx file. Since this is a new file, there shouldn't be any merge conflicts
  2. SearchProvider is imported into core/app/providers and replaces the React fragment (<>) that currently wraps <Toaster> and {children}
  3. In core/vibes/soul/primitives/navigation, replace useState with useSearch imported from the new context file, and update the dependency arrays for the useEffect's in the Navigation component
  4. Add search Button that calls setIsSearchOpen(true) to the NotFound component in core/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.

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 use Streamable.from pattern.

  • Renamed getCompareData query to getComparedProducts.

    • Updated query
    • Returns empty [] if no product ids are passed
  • c6e38a6 Thanks @chancellorclark! - Reorganize and cleanup files:

  • Moved core/context/search-context to core/lib/search.

  • Moved core/client/mutations/add-cart-line-item.ts and core/client/mutations/create-cart.ts into core/lib/cart/*.

  • Removed core/client/queries/get-cart.ts in favor of a smaller, more focused query within core/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 new validate-cart.ts query instead. If you need the previous getCart function, you can copy it from the old file and adapt it to your needs.

  • 7b3b81c Thanks @matthewvolk! - Replaces the REST-powered client.fetchShippingZones method with a GraphQL-powered query containing the site.settings.shipping.supportedShippingDestinations field.

Migration:

  1. The return type of getShippingCountries has the same shape as the Country BigCommerce GraphQL type, so you should be able to copy the graphql query from core/app/[locale]/(default)/cart/page-data.ts into your project and replace the existing getShippingCountries method in there.
  2. Remove the argument data.geography from the getShippingCountries invocation in core/app/[locale]/(default)/cart/page.tsx
  3. Finally, you should be able to delete the file core/client/management/get-shipping-zones.ts assuming it is no longer referenced anywhere in core/
  • 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...
Read more

@bigcommerce/catalyst-client@1.0.0

16 Jun 22:30
0d161c5
Compare
Choose a tag to compare

Major Changes

Minor Changes

  • #2370 20b8788 Thanks @matthewvolk! - Remove the xAuthToken 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:

    1. 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.
    2. If you are using the client in your pnpm workspace, simply remove the xAuthToken references in packages/client/src/client.ts as well as the fetchShippingZones method.
    3. Remove the reference to xAuthToken in core/client/index.ts

@bigcommerce/create-catalyst@0.22.0

14 May 18:31
9d3e666
Compare
Choose a tag to compare

Minor Changes

  • #2296 da1f486 Thanks @matthewvolk! - Expands the supported Node.js version of the create-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

@bigcommerce/catalyst-client@0.15.0

14 May 18:28
9d3e666
Compare
Choose a tag to compare

Minor Changes

  • #1914 f039b2c Thanks @jorgemoya! - GQL requests that respond as 200 but have an errors field will now be properly handled by the client and throw a proper BigCommerceGQLError 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 an onError callback to in order to handle auth and invalid sessions.

  • #2124 4a00a27 Thanks @jorgemoya! - Add an errorPolicy option for GQL requests. Accepts none, ignore, all. Defaults to none which throws an error if there are GQL errors, ignore returns the data without error object, and all 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

24 Mar 18:15
Compare
Choose a tag to compare

Patch Changes

@bigcommerce/create-catalyst@0.21.0

06 Mar 16:46
0f202ae
Compare
Choose a tag to compare

Minor Changes

Patch Changes