-
Added
<CompanyFields/>
with<CompanyName />
and<CompanyVAT />
to shipping and billing forms. (@Giovanni-Schroevers) magento-cart magento-cart-billing-address magento-cart-shipping-address magento-customer next-config magento-graphcms -
Add
permissions
configuration to disable functionalities.- Added new
permissions
configuration for GraphCommerce - Added
permissions.cart
:ENABLED
|CUSTOMER_ONLY
|DISABLED
- Added
permissions.checkout
:ENABLED
|CUSTOMER_ONLY
|DISABLED
- Added
permissions.customerAccount
:ENABLED
|DISABLE_REGISTRATION
|DISABLE
(@Giovanni-Schroevers)
- Added new
-
INP improvements: Moved all usages of
useFormPersist
to the<FormPersist/>
component to prevent rerenders. (@FrankHarland) magento-cart magento-cart-payment-method magento-cart-shipping-address magento-cart-shipping-method magento-compare magento-customer magento-newsletter magento-payment-adyen magento-payment-multisafepay mollie-magento-payment -
Added the ability to edit cart items with full support for all product types and custom options (@Jessevdpoel) magento-cart-items
-
Add a 'Save in address book' checkbox to the shipping address form. (@Giovanni-Schroevers) magento-cart-shipping-address magento-graphcms
-
Add the
customerNote
field to the shipping and customer address forms. Added configurationcustomerAddressNoteEnable
to enable or disable the field. (@Giovanni-Schroevers) magento-cart-shipping-address next-config -
Added support for real
<Breadcrumbs/>
on the frontend. (@Jessevdpoel) magento-category magento-product next-ui -
Show category siblings if a category has no children, will be shown in location where children are located. (@Jessevdpoel) magento-category
-
Added option to change sort order (ASC / DESC) for sort options (Name, price, position etc) on catalog and search pages. (@FrankHarland) magento-category magento-product next-config magento-graphcms
-
Magento 2.4.7: Implemented
cancelOrder
mutation and added a cancel order overlay to the account section. (@Giovanni-Schroevers) magento-customer magento-store magento-graphcms -
Magento 2.4.7: Imlemented
deleteCustomer
mutation to the account section. Disabled by default and can be enabled through the config. (@Giovanni-Schroevers) magento-customer next-ui next-config magento-graphcms -
Add
reorderItems
mutation, addreorder
button to order detail page. (@Giovanni-Schroevers) magento-customer -
Magento 2.4.7: Implement the
contactUs
mutation, add contact us overlay. (@Giovanni-Schroevers) magento-customer magento-graphcms -
Added support
X-Magento-Cache-Id
to allow Varnish to cache requests that are made in the browser while users are logged in. For example the products query can now be cached for logged in users. Functionality can be disabled by settingcustomerXMagentoCacheIdDisable: true
in your configuration. (@paales) magento-customer -
Magento 2.4.7: Add
guestOrder
functionality. (@Giovanni-Schroevers) magento-customer graphql next-ui magento-graphcms -
Magento 2.4.7: implement confirmEmail mutation (@Giovanni-Schroevers) magento-customer magento-store magento-graphcms
-
Magento 2.4.7: Created a GraphQL query field for products:
custom_attribute(attribute_code: "attribute_code")
to retrieve attribute option value labels. This is different from thecustom_attributes
endpoint (note the plural) and allows for retrieving singular attribute values, like brand or any other select or multiselect attribute. (@paales) magento-graphql -
Magento 2.4.7: Added a
magentoVersion
configuration value to be able to differentiate features based on the Magento version. GraphCommerce will automatically load any schema's that are defined in later version of Magento, allowing GraphCommerce to be forward compatible. See schema-246 and schema-247 directories for the changes made to the schema. This is only for compatibility and doesn't make the functionality work. (@paales) magento-graphql -
Created a new
@graphcommerce/magento-graphql-rest
package to integrate with Magento's REST API. By default allows you to retrieve the customer withm2rest_GetV1CustomersMe
and only provides thegroup_id
additionally on the customer. (@Renzovh) magento-graphql-rest -
Add option to show an extended version of the pagination component. Configurable via the
productListPaginationVariant
key in yourgraphcommerce.config.js
.COMPACT
means:< Page X of Y >
andEXTENDED
means:< 1 2 ... [5] ... 10 11 >
(@FrankHarland) magento-product next-ui next-config docs -
Magento 2.4.7: Use
custom_attributesV2
for product specs. (@Giovanni-Schroevers) magento-product magento-graphcms -
Added functionality to constrain the container sizing of the frontend. Added a new configuration
containerSizingShell
andcontainerSizingContent
configuration options. Actual sizing can be configured in thetheme.ts
. (@StefanAngenent) magento-product magento-graphcms -
Completely new SearchOverlay package this is compatible with Magento's default search as well as any other implementation like Algolia and Adobe Sensei. (@paales) magento-search magento-search-overlay
-
Algolia: Enables Algolia category search in GraphQL Mesh. Integrated Algolia category search into the
categories
type within the Mesh. This will only be used on search pages. (@Renzovh) algolia-categories -
Algolia: Integrated algolia personalisation and algolia analytics into GraphQL Mesh. Built user profiles and gives user personalised results. Keep track of the user data and view in algolia analytics dashboard. (@Renzovh) algolia-personalization
-
Algolia: Added search suggestions (@Renzovh) algolia-products
-
Algolia: Magento 2 implemented as a GraphQL Mesh resolver: Allows full integration without modying any frontend components. (@Renzovh) algolia-products
-
Algolia: Integrated product queries into graphql-mesh. Provides fast and accurate searches, that can be personalised via magento-algolia and its algolia dashboard (@Renzovh) algolia-products
-
Algolia: Integrated algolia recommend queries into graphql mesh. Provide accurate upsells and related products on pdp pages (@Renzovh) algolia-recommend
-
Update manifest for app store submission (@ErwinOtten) google-playstore
-
Added Draft Mode support. When enabled it will be shown. (@paales) graphcms-ui graphql hygraph-dynamic-rows-ui
-
Created a new
@graphql-mesh
plugin to forward headers from backends asforwardedHeaders
in extensions. (@paales) graphql-mesh -
Added
<MediaQuery/>
Component: Render (and hydrate) a Component based on a media query given.<MediaQuery query={(theme) => theme.breakpoints.up('md')}> <MyExpensiveDesktopComponent> Only visisble on desktop </MyExpensiveDesktopComponent> </MediaQuery>
When to use, replacement for:
- useMediaQuery: When you are now using useMediaQuery to conditionally render content for mobile or desktop. a. Is very slow as it has to wait for the JS to initialize on pageload. b. Can cause CLS problems if the useMediaQuery is used to render elements in the viewport. c. Can cause LCP issues if useMediaQuery is used to render the LCP element. d. Causes TBT problems as a component always needs to be rerendered. (And bad TBT can cause INP problems) e. HTML isn't present in the DOM, which can cause SEO issues.
- CSS Media query: When you are using CSS to show or hide content based on media queries. a. Causes TBT problems as both code paths need to be rendered. (And bad TBT can cause INP problems)
It wraps the component in a div that has 'display: contents;' when shown and 'display: none;' when hidden so it should not interfere with other styling. It conditionally hydrates the component if the query matches. If it doesn't match, it will NOT hydrate the component (and thus not execute the JS). (@bramvanderholst) next-ui
-
Created a
cssFlags
functionality which allows showing content based on a value in the local storage. This allows hiding/showing small things (is logged in / light or darkmode) (@Giovanni-Schroevers) next-ui -
Big INP improvments: Moved all usages of
useFormPersist
to the<FormPersist/>
component to prevent rerenders. (@FrankHarland) react-hook-form -
Moved to serwist for service workers. (@paales) service-worker docs
-
All fragments are now
@injectable
by default and the@injectable
directive isn't required anymore. Always accept@inject
directives. (@paales) graphql-codegen-near-operation-file -
Migrated to
next.config.ts
(@paales) next-config -
Big improvements to the plugin system: Typescript validated, deeper resolution, new configuration object, replace plugins, and more ifConfig options.
-
Plugins now use TypeScript's
"moduleSuffixes": [".interceptor", ""]
functionality which means that plugins now correctly resolve via TypeScript. So if you go to reference in VSCode (or any other editor), you go to the interceptor directly and see which plugins are applied there. This also means that plugins are automatically checked during build (and will fail if there are errors). -
The exported type of an intercepted component now has the types of all plugins applied. This means that plugins can modify the props of components (and is still validated with TypeScript). To make this work a plugin must always forward props to the
<Prev>
to ensure that values are correctly passed on. -
Plugins will now always be applied to deepest resolved path. This means that a plugin automatically applies to internal usages as well. This thus means that plugins do not need to be written with an internal path, but can keep the parent path. Istead of writing
@graphcommerce/magento-cart-items/components/RemoveItemFromCart/RemoveItemFromCartFab
you can now write@graphcommerce/magento-cart-items
. -
A new configuration object for plugins is created instead of separate exports (the legacy format is still supported though):
export const config: PluginConfig = { type: 'component' module: '@graphcommerce/magento-product', ifConfig: 'demoMode', }
This also means that the name of the export dictates the name of the component/function the plugin is applied.
-
We now support replace plugins (
type: 'replace'
), which allow you to replace the original component/function/const completely (and type checked of course).import { ProductPageNameProps } from '@graphcommerce/magento-product' import { PluginConfig } from '@graphcommerce/next-config' export const config: PluginConfig = { type: 'replace', module: '@graphcommerce/magento-product', } export function ProductPageName(props: ProductPageNameProps) { const { product } = props return <div>REPLACEMENT {product.url_key}</div> }
Plugin files can now have multiple exports for the same configuration. So next to the
ProductPageName
you can also have aProductPagePrice
export for example in the same file. -
We now support
ifConfig
tuple which allows you to apply a plugin only if a certain configuration is set.export const config: PluginConfig = { type: 'replace', module: '@graphcommerce/magento-product', ifConfig: ['theme', 'my-theme'], }
This allows you to support multiple builds with different plugins applied. For example one build with
GC_THEME=my-theme
and another withGC_THEME=my-other-theme
. (@paales)
-
-
Fully replaced the sitemap and robots.txt generation. We previously relied on next-sitemap to generate the sitemap based on static generated pages. However with bigger shops the SSG woudn't be complete. Full support for multi domain setups. (@bramvanderholst) magento-graphcms docs
-
Play store publishing to be able to submit to the playstore. (@ErwinOtten) magento-graphcms
-
Created a new
<EmailElement/>
component to make re-use easier. (@Giovanni-Schroevers) magento-cart magento-cart-email magento-customer ecommerce-ui -
Created a new
<TelephoneElement />
component to make re-use easier. (@Giovanni-Schroevers) magento-cart-billing-address magento-cart-shipping-address magento-customer ecommerce-ui -
Replace deprecated
updateCustomer
mutations withupdateCustomerV2
. (@Giovanni-Schroevers) magento-customer magento-newsletter -
Magento 2.4.7: To make the
custom_attribute
field more valueable, we've added anattribute
-field to theAttributeValueInterface
to be able to retrieve attribute metadata from the value of an attribute. To be able magento-graphql -
Created a new ` magento-newsletter
-
Allow Lingui to use
linguiLocale
with country identifiers likeen-us
, it would always loaden
in this case. Introduced a newuseLocale
hook to use the correct locale string to use in Intl methods. (@paales) magento-product magento-product-configurable lingui-next next-ui next-config docs -
When generating the mesh the configuration is passed through
@graphcommerce/graphql-mesh/meshConfig
allowing plugins to modify the mesh configuration without having to change the.meshrc.yaml
itself. (@Renzovh) cli graphql-mesh -
Added separate sitemap for Hygraph pages (@bramvanderholst) hygraph-ui magento-graphcms
-
Added Intl components, deprecated
useNumberFormat
anduseDateTimeFormatter
, and replaced usage sites. New components and hooks:<DisplayNames />
anduseIntlDisplayNames
<DateTimeFormat />
,<DateFormat/>
,<TimeFormat />
anduseIntlDateTimeFormat
<ListFormat />
anduseIntlListFormat
<CurrencyFormat />
,<NumberFormat />
,<UnitFormat />
,<PercentFormat/>
anduseIntlNumberFormat
(@paales)
-
Add props to
<DarkLightModeThemeProvider />
to disable dark/light mode or to change the default ssr mode. Save user chosen mode in localStorage. (@Giovanni-Schroevers) next-ui -
Added a new
<OverlayHeader />
component to be used in combination with the<Overlay />
component. (@JoshuaS98) next-ui -
The
<LazyHydrate />
component now accepts aheight
prop that allows deferring of rendering of the child component when initially rendered on the client. This improves performance when used. (@paales) next-ui -
Added
<RelativeTimeFormat/>
and<RelativeToTimeFormat/>
anduseIntlRelativeTimeFormat
to display relative dates in all locales. (@paales) next-ui -
Added new plugin insertion points:
<DocumentHeadStart/>
,<DocumentHeadEnd/>
,<DocumentBodyEnd/>
,<DocumentBodyStart/>
for the_document.app
to allow creating plugins for those locations to insert scripts etc. (@paales) next-ui -
Added a functionality to copy directories from packages to the project and keep them managed by the package. This allows for injecting additional routes etc. (@paales) next-config
-
Added
PRIVATE_ADDITIONAL_DEPENDENCIES
env variable support to enable packages that we do not want to have in the examples directory but we do want to be able to demo. (@paales) next-config -
Added
PRIVATE_PACKAGE_NAMESPACES
env variable to have additional namespaces to be considered to be a graphcommerce package. (@paales) next-config -
Created dedicated sitemap route for categories so it isn't dependend on static generation. (@bramvanderholst) next-config magento-graphcms
-
Created dedicated sitemap route for products so it isn't dependend on static generation. (@bramvanderholst) next-config magento-graphcms
-
Get
shippingMethodPrices
from selected shipping method if supported on the magento version (@Giovanni-Schroevers) magento-cart -
When signing in make sure the cart isn't merged if the login is unsuccesful. (@paales) magento-cart
-
Upgrade input components to no longer use
muiRegister
, which improves INP scores. (@FrankHarland) magento-cart magento-cart-billing-address magento-cart-coupon magento-cart-shipping-address magento-customer magento-payment-adyen magento-payment-included magento-product magento-product-configurable magento-review ecommerce-ui next-ui react-hook-form next-config magento-graphcms -
Solve an issue where the cart would be sometimes undefined, but a typescript
Partial
was too general. (@paales) magento-cart -
Enable the use of one or more anchor links within the
checkbox_text
field and customize their paths. (@carlocarels90) magento-cart -
Pass
sx
props to<EmptyCart/>
component. (@JoshuaS98) magento-cart -
Fix bug with persist not applying saved changes by moving
<FromPersist/>
below the form components. (@Giovanni-Schroevers) magento-cart magento-cart-payment-method magento-cart-shipping-address magento-compare magento-customer magento-newsletter magento-payment-adyen magento-payment-multisafepay mollie-magento-payment react-hook-form -
Made all component prop types exported (@bramvanderholst) magento-cart magento-cart-items magento-cart-shipping-address magento-cart-shipping-method magento-category magento-compare magento-customer magento-newsletter magento-pagebuilder magento-product magento-product-bundle magento-product-configurable magento-product-downloadable magento-product-grouped magento-review magento-search magento-store magento-wishlist algolia-search ecommerce-ui framer-scroller graphcms-ui mollie-magento-payment next-ui
-
Add missing gutter to /checkout/item page (@bramvanderholst) magento-cart magento-graphcms
-
Forward BadgeProps to WishlistFab, CartFab and CustomerFab (@paales) magento-cart magento-customer magento-wishlist
-
Prevent a reloading the
ShippingPage
query when selecting a shipping method. (@Giovanni-Schroevers) magento-cart-checkout -
Rename
configurable_customizable
back tocustomizable_options
. (@Giovanni-Schroevers) magento-cart-items magento-product magento-product-configurable -
Rename
experimental_useV2
prop todeprecated_useV1
inuseFromGql
and enable it by default. (@Giovanni-Schroevers) magento-cart-items magento-cart-shipping-address magento-cart-shipping-method magento-customer magento-payment-braintree magento-product react-hook-form -
Removed
useMediaQuery
from the<WishlistItemActionCard />
and<CartItemActionCard />
and replaced it with a new responsivesize
prop. (@Jessevdpoel) magento-cart-items magento-wishlist next-ui magento-graphcms -
Make sure the edit cart item isn't shown for an order (@paales) magento-cart-items
-
Solve issue where the
<CartEditForm />
would temporarily show an empty cart after saving. (@Giovanni-Schroevers) magento-cart-items -
Create
useRemoveItemFromCart
hook to allow for reuse while keeping compatibility with plugins. (@Jessevdpoel) magento-cart-items google-datalayer -
Use the non resolved payment methods as a placeholder for the actual payment methods (@FrankHarland) magento-cart-payment-method
-
Solve issue where Braintree wouldn't place the order after successfully validating a Credit Card. (@paales) magento-cart-payment-method magento-payment-braintree
-
Due to a cyclic dependency the actual
<PaymentMethodPlaceOrder />
button would sometimes be undefined. (@paales) magento-cart-payment-method -
Prevent the
<BillingPage />
query from rerunning on each mutation. (@FrankHarland) magento-cart-payment-method magento-payment-adyen magento-payment-braintree magento-product google-datalayer -
Moved plugins to new format (@paales) magento-cart-pickup magento-compare magento-payment-adyen magento-payment-braintree magento-payment-included magento-payment-klarna magento-payment-multisafepay magento-payment-paypal demo-magento-graphcommerce google-datalayer googleanalytics googlerecaptcha googletagmanager graphcms-ui hygraph-dynamic-rows mollie-magento-payment
-
In the shipping step show errors with a
<ApolloCartErrorSnackbar />
instead of a<ApolloCartErrorAlert />
. (@Giovanni-Schroevers) magento-cart-shipping-address -
When saving a shipping address it would always save the company after it was once saved. (@Giovanni-Schroevers) magento-cart-shipping-address
-
Fixed shipping address not getting set for logged-in customers with default address. (@bramvanderholst) magento-cart-shipping-address
-
Fixed
<CustomerAddressForm/>
resetting to a saved address when trying to use a new address. (@bramvanderholst) magento-cart-shipping-address -
The billing and shipping address of a customer would not be recognized as the same address although they would effectively be the same (@FrankHarland) magento-cart-shipping-address
-
Select the only available shipping method as the current cart shipping method when there is only one shipping method available. (@LaurensFranken) magento-cart-shipping-method
-
Prevent rendering
null
whenmethod_title
is not provided. (@carlocarels90) magento-cart-shipping-method -
Allow changing various props for internal components (@bramvanderholst) magento-cart-shipping-method magento-customer magento-product magento-product-configurable magento-wishlist ecommerce-ui next-ui
-
When a user access a category page which is beyond the available total_pages, the user will be redirected to the last available page. (@paales) magento-category magento-product magento-store
-
Redirect users to homepage after password reset as
router.back()
often returns an empty or invalid history state. (@carlocarels90) magento-customer magento-graphcms -
In some cases the
xMagentoCacheId
wasn't defined in the returned query, making sure the application doesn't crash. (@paales) magento-customer -
Show actual order status from the backend, improve order state logic. (@Giovanni-Schroevers) magento-customer magento-graphcms
-
Fix issues when using non-hex colors in theme (@bramvanderholst) magento-customer next-ui
-
The
<AddressCountryRegion/>
component would show a warning if the countries weren't loaded yet. It will now show a readonly field with the country code. (@Giovanni-Schroevers) magento-customer -
Replace useWatch with watch in order to prevent email from being undefinded when already being prefilled for expired sessions (@Giovanni-Schroevers) magento-customer
-
Solve issue where persisted Form-data would remain in the sessionStorage after logging out. (@paales) magento-customer
-
The
useSignInForm
hook now optionally accepts an email prop. (@paales) magento-customer -
fix session expired email not always available in cache (@StefanAngenent) magento-customer
-
Prevent overlap between autofilled data and input label for all TextFieldElements and its derivatives. (@carlocarels90) magento-customer
-
The
<CompanyFields />
toggle wouldn't be valid when Private was selected and would only validate if Business was selected. (@Giovanni-Schroevers) magento-customer -
Check validation of email field in SignInForm and SignUpForm (@Giovanni-Schroevers) magento-customer
-
The
formData.region
value could beundefined
when creating new address (@FrankHarland) magento-customer -
Add
disableMargin
prop to<WaitForCustomer/>
component. (@JoshuaS98) magento-customer -
Prevent success message from showing up when updating the users email while the form is still submitting a new request to update the users email. (@Giovanni-Schroevers) magento-customer
-
Remove the privateContext directive from the query before sending to the server (@paales) magento-customer
-
fix session expired email not always available in cache (@StefanAngenent) magento-customer
-
Renamed useInContextQuery to usePrivateQuery (@paales) magento-customer magento-product magento-search algolia-personalization graphql
-
Avoid displaying
undefined
forcountryName
orregionName
. (@carlocarels90) magento-customer -
Add
X-Forwarded-For
header to mesh requests. (@SumVur) magento-graphql -
Payment method will now throw an error in
onComplete
to handle obscure errors. (@Giovanni-Schroevers) magento-payment-adyen magento-payment-included magento-payment-multisafepay mollie-magento-payment -
Fixed the Place order button not working (in dev mode) for certain payment methods. (@bramvanderholst) magento-payment-included
-
Move render logic from
<AddProductsToCartSnackbar />
to<AddProductsToCartSnackbarMessage />
so this can be reused outside of<AddProductsToCartForm />
. (@Giovanni-Schroevers) magento-product -
Hide ProductScroller components when no items are available (@bramvanderholst) magento-product
-
Hide the
<SortChip />
or<SortSection />
when there is only a single filter option. (@Renzovh) magento-product -
When applying a filter it would not always scroll to the
#products
. (@FrankHarland) magento-product -
Move to
attributesList
to get a list of filterable attributes instead of using an introspection query.productFiltersProSectionRenderer
andproductFiltersProChipRenderer
keys now useAttributeFrontendInputEnum
. (@paales) magento-product magento-search -
Fixed the products sitemap not containing more than 100 products when limit SSG is enabled (@rustmaestro) magento-product
-
Allow adding elements after/between product list items (e.g. banners) (@bramvanderholst) magento-product
-
Render multiple items in the
RowSpecs
table as a list. (@paales) magento-product -
Add requireOptionSelection boolean to prevent users from deselecting configurable options (@carlocarels90) magento-product-configurable ecommerce-ui
-
Disable configurable product options that are unavailable for selection. (@carlocarels90) magento-product-configurable
-
Fixed tier prices not working for non-configurable products. (@bramvanderholst) magento-product-configurable
-
Respect configurableVariantValues.gallery config when selecting a configurable variant. The image should only change to the simple product image when the config is set to true, otherwise the configurable image should remain. To keep this functionality, please set
configurableVariantValues: { gallery: true }
in your graphcommerce.config.js (@bramvanderholst) magento-product-configurable -
Added clear upgrade instructions for
linguiLocale
. (@paales) magento-product-configurable lingui-next next-ui next-config docs -
Moved product reviews to the
relatedUpsells
query so we do not pass the queryComplexity limit. (@paales) magento-product-configurable magento-review -
Solved issue where Recently Viewed Products would execute a query even if there were no products to display. (@paales) magento-recently-viewed-products
-
Add early return when there are no reviews to prevent invalid enhanced results. (@carlocarels90) magento-review
-
Solved an issue where the Search Input field wouldn't open and wouldn't be focussed on render. (@Renzovh) magento-search
-
Solve issue: Warning: Cannot update a component (
FormAutoSubmitBase
) while rendering a different component (ActionCardListForm
). (@paales) magento-search ecommerce-ui -
Handle the case where one switches from using the default
.html
URL suffix, to not using one. (@hnsr) magento-store -
Default to permanent redirects unless specified (@hnsr) magento-store
-
Contain ripple to wishlist button instead of propagating to product list item (@bramvanderholst) magento-wishlist
-
Add to wishlist message missed the product name (@paales) magento-wishlist
-
Algolia: Added support for Adobe Commerce for Algolia. (@paales) algolia-products algolia-recommend
-
Algolia: Added support for customer group pricing in Algolia. (@Renzovh) algolia-products
-
Algolia: Prevent errors by returning string instead of array (@Renzovh) algolia-products
-
Algolia: Automatically fall back to existing upsells/related products if they are defined and Algolia returns an error (@paales) algolia-recommend
-
Solve issue where
customFetch
couldn't be loaded correctly. (@paales) cli graphql-mesh magento-graphcms -
Resolve peer dependency issues so we get a clean install (@paales) cli google-datalayer googleanalytics googletagmanager graphql graphql-mesh hygraph-cli next-ui react-hook-form eslint-config-pwa graphql-codegen-markdown-docs graphql-codegen-near-operation-file graphql-codegen-relay-optimizer-plugin next-config prettier-config-pwa
-
Make sure the interceptors are generated before the typecheck is ran. (@paales) cli next-config
-
The mesh would always include all graphqls files even though they aren't necessary for Magento 2.4.7 (@Giovanni-Schroevers) cli
-
Remove large demo item, as it doesn't properly work and isn't as pretty as it can be (@paales) demo-magento-graphcommerce
-
Added ref forwarding for the inputRef (@paales) ecommerce-ui
-
Updated all form
<FieldElement />
components to also acceptdefaultValue
,shouldUnregister
anddisabled
. Moved<AutoCompleteElement />
,<CheckboxElement />
,<MultiSelectElement />
,<SliderElement />
,<SwitchElement />
,<ToggleButtonGroup />
touseController
. Removed allparseError
props. (@Giovanni-Schroevers) ecommerce-ui -
Make sure the
<TextFieldElement/>
doesn’t give a uncontrolled to controlled warning. Convert<SelectElement/>
touseController
instead of a separate Controller component. Make sure the originalendAdornment
is always shown only until the value is valid. (@FrankHarland) ecommerce-ui -
The
<WaitForQueries/>
component now uses theuseIsSSR
hook which prevents loading spinners when navigating on the client, which make all account/cart/checkout pages faster. (@FrankHarland) ecommerce-ui -
Omit disableUnderline prop for ‘outlined’ variant, because its not supported. (@carlocarels90) ecommerce-ui
-
Moved
<ActionCardListForm />
to@graphcommerce/ecommerce-ui
to resolve issue with circular dependencies. (@Giovanni-Schroevers) ecommerce-ui -
Destructure InputProps to ensure they are passed only to relevant components. (@carlocarels90) ecommerce-ui
-
Solve issue where
<NumberFieldElement />
would allow numbers below zero whenmin = 0
. (@JoshuaS98) ecommerce-ui -
Prevent checkout from looping back and forth with the cart overlay when navigating directly to the checkout. (@Giovanni-Schroevers) framer-next-pages
-
Loading an overlay page directly would animate in the overlay instead of directly showing it. (@paales) framer-next-pages next-ui
-
Prevent retriggering a
scrollTo
animation in Firefox when the currentscrollLeft/scrollTop
is a float. (@Giovanni-Schroevers) framer-scroller -
The
<SidebarGallery />
now supports two more props:disableSticky
andvariantMd
(default | oneColumn
). (@Jessevdpoel) framer-scroller -
Prevent
<ScrollerThumbnail />
from scrolling the page horizontally. (@Giovanni-Schroevers) framer-scroller -
Prevent gallery thumbnails from scrolling when opening or closing a layout overlay. (@Giovanni-Schroevers) framer-scroller next-ui
-
All
sendEvent
calls are now the return type ofuseSendEvent
, to allow plugins to use hooks themselves. (@Renzovh) google-datalayer -
Solved an issue where the
BillingPage
query would be re-queried after setting the payment method. (@Giovanni-Schroevers) google-datalayer -
Moved import locations of Google Analytics and Google Tagmanager scripts to their officialrecommended locations. (@paales) googleanalytics googletagmanager
-
Solve an issue where the
grecaptcha.execute
method would thrownull
causing the checkout to break in unexpected ways. (@paales) googlerecaptcha -
fix: Google tag manager noscript tag would output escaped html causing hydration errors (@FrankHarland) googletagmanager
-
Renamed from
@graphcommerce/graphcms-ui
to@graphcommerce/hygraph-ui
. (@paales) graphcms-ui hygraph-ui -
Remove ‘up’ data from the blogoverview page. (@carlocarels90) graphcms-ui magento-graphcms
-
Allow blog pages to be nested. (@Jessevdpoel) graphcms-ui
-
Added helper method to get Hygraph paths (@bramvanderholst) graphcms-ui
-
Add support for linebreaks in Hygraph content (@FrankHarland) graphcms-ui
-
The
<PrivateQueryMask />
component now only warns when a block is rendered during the initial SSR render. (@Giovanni-Schroevers) graphql -
When loading a page, always create a new GraphQL client, so that cache isn't shared for each request, causing an unnecessary large page size. (@paales) graphql
-
Added back ApolloClient caching for SSR requests to projects (@paales) graphql
-
Added eslint rule: Importing
\*.interceptor
is NOT allowed (@paales) graphql eslint-config-pwa -
measurePerformanceLink now reports queries made in the subgraph and is only included during development and not in production. (@paales) graphql
-
When a
usePrivateQuery
is called, only execute when there is noPrivateQueryMaskContext
defined above. (@paales) graphql -
Solves the issue
TypeError: url?.startsWith is not a function
. The generated.mesh/index.ts
would be generated as a requirejs module while next.js expects an esm module. In the end we properly generated the mesh correctly and now there is animport.meta.url
instead of usingrequire('node:url')
. To solve this we needed to solve a chain of issues:- The generation of the mesh is based on the version of the mesh that is imported (esm or commonjs). See source for the lines that need to be different. This meant that we needed to change the @graphcommerce/cli package to be of type:module instead of a commonjs module.
- To properly convert the module to an esm module we've migrated the build of the cli package to use 'pkgroll' instead of tsc, because tsc is limited in what it outputs and can't really convert classic imports to esm.
- To load possible mesh plugins we require additional .ts files to be loaded with tsx. To get the tsx loader to work properly in combination with esm modules, we need at least node 18.19.0. Minimal Node version upped to 18.19.0 and add support for node 22. (@paales)
-
Added
traverseSelectionSet
utility function to extract a child selection set from the parent. (@Renzovh) graphql-mesh -
Fix cors issues with Dynamic Row Property Picker App (@JoshuaS98) graphql-mesh
-
@paales(@paales) graphql-mesh
-
Revert Pin versions of @graphql-mesh/config and utils (@paales) graphql-mesh
-
Made all graphql mesh dependencies peer dependencies so users can upgrade without problems (@paales) graphql-mesh
-
Suppress warning where a dependency is an expression, Added uglify-es and long as the dependencies couldn’t be found (@paales) graphql-mesh next-config
-
Remove
row
field on DynamicRows` model (@JoshuaS98) hygraph-dynamic-rows -
Solve issue where an Apollo object couldn't be modified as it is read only when Dynamic rows are added to the project. (@JoshuaS98) hygraph-dynamic-rows
-
Resolve issue where the dynamic rows UI wouldn’t load any definitions (@paales) hygraph-dynamic-rows-ui
-
Solve bugs in the Dynamic Row UI module and styled the config screen. (@JoshuaS98) hygraph-dynamic-rows-ui
-
Allow attributes with deprecationReasons (e.g. custom attributes) as PropertyPicker value (@carlocarels90) hygraph-dynamic-rows-ui
-
When viewing the website on a 1x monitor, serve a little bit smaller images. (@paales) image
-
Solve an issue where image sizes are served in higher resolution than expected. (@bramvanderholst) image
-
Solve issue where the page would reload during development when the first call to
/graphql
was made. (@paales) lingui-next next-ui -
Resolve the overlay issue when navigating from the 'Forgot Password' page to the 'Sign In' page. (@carlocarels90) next-ui magento-graphcms
-
Fix back button transparency on hover (@bramvanderholst) next-ui
-
Added
useIsSSR
hook that will properly resolve when the page is rendered on the server and on first render, but will return false when a component is rendered on the client directly. (@FrankHarland) next-ui -
USPS would be loaded after other queries, causing unnecessary slowdown. (@paales) next-ui
-
Added the possibility to place content before or after the scroller. (@carlocarels90) next-ui
-
Mark the menu item as active if router.asPath matches the href, or if the first URL segment matches, indicating it's the parent item. (@carlocarels90) next-ui
-
Solve an issue where the success page would show a back button which would go back to the payment page (which would be empty) (@carlocarels90) next-ui magento-graphcms
-
Move arguments of
responsiveVal
around so theminBreakpoint
can be given as third argument. (@paales) next-ui -
OverlayBase now supports disableAnimation and disableDrag (@paales) next-ui
-
Updated canonicalize helper for better multi domain support (@bramvanderholst) next-ui
-
Added locale prop support for all
<Intl/>
components and exposed all functionality as hooks. (@paales) next-ui -
memoDeep
function that is a deep compare variant ofReact.memo
. Performance seems to be pretty good, but should only be used as a result of a profiling session. (@paales) next-ui -
Solve an issue where internal full URL's would cause prefetching errors and would use a hard navigation. (@paales) next-ui
-
Added functionality to constrain the container sizing of the frontend. Added a new configuration
containerSizingShell
andcontainerSizingContent
configuration options. Actual sizing can be configured in thetheme.ts
. (@StefanAngenent) next-ui -
Exclude ‘disableBackNavigation’ prop from LinkOrButton in LayoutHeaderBack. (@carlocarels90) next-ui
-
The
<ActionCardList />
can now recieve focus, allowing form submissions to scroll to the field. Focussed fields now are now highlighted even when there is an error. (@Giovanni-Schroevers) next-ui -
Hide the back button on desktop pages where breadcrumbs are displayed. (@carlocarels90) next-ui magento-graphcms
-
Properly align cart loading state (and other FullPageMessage usages) (@bramvanderholst) next-ui
-
Make the back/up buttons translatable (@carlocarels90) next-ui magento-graphcms
-
Date strings (12-12-2012) are not supported by older Safari browser versions. must be converted (12/12/2012) in order for it to function; otherwise, it will return NaN if we attempt to access the getTime() on an object. (@Vignesh-M21) next-ui magento-graphcms
-
MediaQuery component now accepts a display prop to not always render with display contents. Implement the MediaQuery component for the DesktopNavBar and filter page for StickyBelowHeader and ProductFiltersPro sidebar (@paales) next-ui
-
useFormGql
and it's derived hooks now have a newskipUnchanged
prop. The form will only be submitted when there are fields dirty in a form. This reduces the amount of queries ran in the checkout greatly. (@Giovanni-Schroevers) react-hook-form -
Added deprecation warnings for
useFormMuiRegister
. RefactoreduseFormPersist
to useuseWatch
and added a separate<FormPersist />
component to prevent rerenders. (@FrankHarland) react-hook-form -
Solve an issue where
onBeforeSubmit
andonComplete
would become an 'stale closure' where variables inside wouldn't be updated. By wrappingonBeforeSubmit
andonComplete
inuseEventCallback
these functions are updated when outside values get changed. (@Giovanni-Schroevers) react-hook-form -
Prevent overwriting custom context in useFormGqlMutation by merging operationOptions before execution. (@wimvdputten) react-hook-form
-
When a
useFormGql
throws an error in theonBeforeSubmit
method oronComplete
method it will be set as an ApolloError with the message, allowing it to be displayed somewhere. The<PaymentMethodButton />
will now render this as an<ErrorSnackbar />
. (@Giovanni-Schroevers) react-hook-form -
Added missing dependencies of
lodash
and@types/lodash
. (@paales) react-hook-form -
Mark
useFormValidFields
as deprecated: Please use<TextInputElement />
,<SelectElement />
, etc. with theshowValid
prop. (@FrankHarland) react-hook-form -
Let eslint also work for js/mjs files (@paales) eslint-config-pwa
-
@paales(@paales) eslint-config-pwa
-
Removed the
ProductPage.graphql
query from the examples directory as it isn't used anymore. (@paales) next-config -
Make sure categories and products create the correct URL's in sitemaps (@paales) next-config
-
Added graphql.config.ts to projects (@paales) next-config
-
Added robotsAllow to storefront config (@bramvanderholst) next-config
-
All automatically generated interceptor files are now read-only in vscode to prevent accidental changes. (@paales) next-config
-
Reduce bundlesize of
@apollo/client
. (@paales) next-config -
Solved an issue where the plugins would be generated with the wrong path (@paales) next-config
-
Solve an issue where an env variable wouldn't be coerced to a Number if a
Config.graphqls
value is defined as anInt
/Float
. (@paales) next-config -
Solve an issue where interceptors were immediately deleted after generating (@paales) next-config
-
Be able to handle plugin runtime values values when parsing the source. Also, make sure parsed plugin sources do not return duplicate plugins. (@paales) next-config
-
Solve peer dependency issues for webpack and framer-motion (@paales) next-config
-
Added better interceptor comments and link to original files (@paales) next-config
-
Enable prettier-plugin-jsdoc (@paales) prettier-config-pwa
-
Added docs about caching. (@paales) docs
-
Added documentation about the Canonical URL and Sitemap handling (@paales) docs
-
Document patch
custom_attributesV2
for null attribute values issue. (@SimonPrins) docs -
Create a 'Third-Party Libraries' page that includes further details on tools such as Google Analytics and Google Tag Manager. (@carlocarels90) docs
-
Added web vitals document (@paales) docs
- @graphcommerce/magento-cart: (source • CHANGELOG.md)
- @graphcommerce/magento-cart-billing-address: (source • CHANGELOG.md)
- @graphcommerce/magento-cart-shipping-address: (source • CHANGELOG.md)
- @graphcommerce/magento-customer: (source • CHANGELOG.md)
- @graphcommerce/next-config: (source • CHANGELOG.md)
- @graphcommerce/magento-graphcms: (source • CHANGELOG.md)
- @graphcommerce/magento-cart-email: (source • CHANGELOG.md)
- @graphcommerce/ecommerce-ui: (source • CHANGELOG.md)
- @graphcommerce/magento-cart-payment-method: (source • CHANGELOG.md)
- @graphcommerce/magento-cart-shipping-method: (source • CHANGELOG.md)
- @graphcommerce/magento-compare: (source • CHANGELOG.md)
- @graphcommerce/magento-newsletter: (source • CHANGELOG.md)
- @graphcommerce/magento-payment-adyen: (source • CHANGELOG.md)
- @graphcommerce/magento-payment-multisafepay: (source • CHANGELOG.md)
- @graphcommerce/mollie-magento-payment: (source • CHANGELOG.md)
- @graphcommerce/magento-cart-items: (source • CHANGELOG.md)
- @graphcommerce/magento-category: (source • CHANGELOG.md)
- @graphcommerce/magento-product: (source • CHANGELOG.md)
- @graphcommerce/next-ui: (source • CHANGELOG.md)
- @graphcommerce/magento-store: (source • CHANGELOG.md)
- @graphcommerce/graphql: (source • CHANGELOG.md)
- @graphcommerce/magento-graphql: (source • CHANGELOG.md)
- @graphcommerce/magento-graphql-rest: (source • CHANGELOG.md)
- @graphcommerce/docs: (source • CHANGELOG.md)
- @graphcommerce/magento-search: (source • CHANGELOG.md)
- @graphcommerce/magento-search-overlay: (source • CHANGELOG.md)
- @graphcommerce/algolia-categories: (source • CHANGELOG.md)
- @graphcommerce/algolia-personalization: (source • CHANGELOG.md)
- @graphcommerce/algolia-products: (source • CHANGELOG.md)
- @graphcommerce/algolia-recommend: (source • CHANGELOG.md)
- @graphcommerce/google-playstore: (source • CHANGELOG.md)
- @graphcommerce/graphcms-ui: (source • CHANGELOG.md)
- @graphcommerce/hygraph-dynamic-rows-ui: (source • CHANGELOG.md)
- @graphcommerce/graphql-mesh: (source • CHANGELOG.md)
- @graphcommerce/react-hook-form: (source • CHANGELOG.md)
- @graphcommerce/service-worker: (source • CHANGELOG.md)
- @graphcommerce/graphql-codegen-near-operation-file: (source • CHANGELOG.md)
- @graphcommerce/magento-product-configurable: (source • CHANGELOG.md)
- @graphcommerce/lingui-next: (source • CHANGELOG.md)
- @graphcommerce/cli: (source • CHANGELOG.md)
- @graphcommerce/hygraph-ui: (source • CHANGELOG.md)
- @graphcommerce/magento-cart-coupon: (source • CHANGELOG.md)
- @graphcommerce/magento-payment-included: (source • CHANGELOG.md)
- @graphcommerce/magento-review: (source • CHANGELOG.md)
- @graphcommerce/magento-pagebuilder: (source • CHANGELOG.md)
- @graphcommerce/magento-product-bundle: (source • CHANGELOG.md)
- @graphcommerce/magento-product-downloadable: (source • CHANGELOG.md)
- @graphcommerce/magento-product-grouped: (source • CHANGELOG.md)
- @graphcommerce/magento-wishlist: (source • CHANGELOG.md)
- @graphcommerce/algolia-search: (source • CHANGELOG.md)
- @graphcommerce/framer-scroller: (source • CHANGELOG.md)
- @graphcommerce/magento-cart-checkout: (source • CHANGELOG.md)
- @graphcommerce/magento-payment-braintree: (source • CHANGELOG.md)
- @graphcommerce/google-datalayer: (source • CHANGELOG.md)
- @graphcommerce/magento-cart-pickup: (source • CHANGELOG.md)
- @graphcommerce/magento-payment-klarna: (source • CHANGELOG.md)
- @graphcommerce/magento-payment-paypal: (source • CHANGELOG.md)
- @graphcommerce/demo-magento-graphcommerce: (source • CHANGELOG.md)
- @graphcommerce/googleanalytics: (source • CHANGELOG.md)
- @graphcommerce/googlerecaptcha: (source • CHANGELOG.md)
- @graphcommerce/googletagmanager: (source • CHANGELOG.md)
- @graphcommerce/hygraph-dynamic-rows: (source • CHANGELOG.md)
- @graphcommerce/magento-recently-viewed-products: (source • CHANGELOG.md)
- @graphcommerce/hygraph-cli: (source • CHANGELOG.md)
- @graphcommerce/eslint-config-pwa: (source • CHANGELOG.md)
- @graphcommerce/graphql-codegen-markdown-docs: (source • CHANGELOG.md)
- @graphcommerce/graphql-codegen-relay-optimizer-plugin: (source • CHANGELOG.md)
- @graphcommerce/prettier-config-pwa: (source • CHANGELOG.md)
- @graphcommerce/framer-next-pages: (source • CHANGELOG.md)
- @graphcommerce/image: (source • CHANGELOG.md)