GraphCommerce® is a headless storefront replacement for Magento 2 (PWA), that delivers a faster, better user experience. Fully customizable (React, Next.js) and open-source.
OTHER License
Bot releases are visible (Hide)
Published by github-actions[bot] 5 months ago
e5291a4
- prevent rendering 'null' when method_title is not providedPublished by github-actions[bot] 5 months ago
f9199f7
- Solve issue where Braintree wouldn't place the order after successfully validating a Credit Card.Published by github-actions[bot] 5 months ago
2872cab
- Removed useMediaQuery from the wishlist and cart ItemActionCard and replaced it with a new responsive size prop.2872cab
- Removed useMediaQuery from the wishlist and cart ItemActionCard and replaced it with a new responsive size prop.2872cab
- Removed useMediaQuery from the wishlist and cart ItemActionCard and replaced it with a new responsive size prop.Published by github-actions[bot] 5 months ago
29e496c
- Prevent ScrollerThumbnail from scrolling the page horizontallyPublished by github-actions[bot] 5 months ago
9d5fd11
- make the CategoryHeroNav fragment injectable and add image to the childerenPublished by github-actions[bot] 5 months ago
Published by github-actions[bot] 5 months ago
💡 This is a patch release, for the latest full release notes see the GraphCommerce 8.0 release notes ↩️
0289bfb
- Suppress warning where a dependency is an expression, Added uglify-es and long as the dependencies couldn’t be found (@paales)Published by github-actions[bot] 6 months ago
Published by github-actions[bot] 6 months ago
679d07d
- make the ProductPageMeta fragment injectablePublished by github-actions[bot] 6 months ago
Published by github-actions[bot] 6 months ago
7652234
- Replaced next-sitemap with page router based robots.txt & sitemaps0ccec63
- Added helper method to get Hygraph pathsd7459fe
- Updated canonicalize helper for better multi domain support4f7fe02
- Added robotsAllow to storefront configPublished by github-actions[bot] 6 months ago
6831040
- Suppress warning where a dependency is an expression, Added uglify-es and long as the dependencies couldn’t be founda56a7c6
- Solve an issue where the cart would be sometimes undefined, but Partial was too eleborated345474
- Due to a cyclic dependency the actual PaymentMethodPlaceOrder button would sometimes be undefined.#2247 5153904
- Added PRIVATE_ADDITIONAL_DEPENDENCIES to enable packages that we do not want to have in the examples directory but we do want to be able to demo.
(@paales)
#2247 6831040
- reduce bundlesize of @apollo/client
(@paales)
#2247 81c6c81
- Solved an issue where the plugins would be generated with the wrong path
(@paales)
#2247 6831040
- Suppress warning where a dependency is an expression, Added uglify-es and long as the dependencies couldn’t be found
(@paales)
#2247 cfc0f4e
- Make sure the interceptors are generated before the typecheck is ran.
(@paales)
#2247 444e446
- Added clear upgrade instructions for linguiLocale
(@paales)
#2247 3f9d8f5
- Added better interceptor comments and link to original files
(@paales)
Published by github-actions[bot] 6 months ago
Published by github-actions[bot] 6 months ago
Published by github-actions[bot] 6 months ago
4dd2d01
- When applying a filter it would not always scroll to the #products.#2226 8939df2
- 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 a ProductPagePrice
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 with GC_THEME=my-other-theme
. (@paales)
Published by github-actions[bot] 6 months ago
d597719
- Added option to change sort order (ASC / DESC) for sort options (Name, price, position etc) on catalog and search pages.d597719
- Added option to change sort order (ASC / DESC) for sort options (Name, price, position etc) on catalog and search pages.d597719
- Added option to change sort order (ASC / DESC) for sort options (Name, price, position etc) on catalog and search pages.Published by github-actions[bot] 6 months ago
2ed2055
- Allow blog pages to be nestedPublished by github-actions[bot] 6 months ago
#2234 0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores
(@FrankHarland)
#2234 43bd04a
- Make sure the TextFieldElement doesn’t give a uncontrolled to controlled warning.
Convert SelectElement to useController instead of a separate Controller component.
Make sure the original endAdornment is always shown only until the value is valid (@FrankHarland)
#2234 d4e693d
- The <WaitForQueries/>
component now uses the useIsSSR hook which prevents loading spinners when navigating on the client, which make all account/cart/checkout pages faster.
(@FrankHarland)
43bd04a
- Prevent BillingPage query from rerunning on each mutation#2234 0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores
(@FrankHarland)
#2234 530076e
- Moved all usages of useFormPersist to the component to prevent rerenders.
(@FrankHarland)
0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores#2234 43bd04a
- Use the non resolved payment methods as a placeholder for the actual payment methods
(@FrankHarland)
#2234 530076e
- Moved all usages of useFormPersist to the component to prevent rerenders.
(@FrankHarland)
#2234 43bd04a
- Prevent BillingPage query from rerunning on each mutation
(@FrankHarland)
#2234 0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores
(@FrankHarland)
#2234 530076e
- Moved all usages of useFormPersist to the component to prevent rerenders.
(@FrankHarland)
#2234 43bd04a
- The billing and shipping address of a customer would not be recognized as the same address although they would effectively be the same
(@FrankHarland)
530076e
- Moved all usages of useFormPersist to the component to prevent rerenders.530076e
- Moved all usages of useFormPersist to the component to prevent rerenders.#2234 0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores
(@FrankHarland)
#2234 530076e
- Moved all usages of useFormPersist to the component to prevent rerenders.
(@FrankHarland)
530076e
- Moved all usages of useFormPersist to the component to prevent rerenders.#2234 0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores
(@FrankHarland)
#2234 530076e
- Moved all usages of useFormPersist to the component to prevent rerenders.
(@FrankHarland)
#2234 43bd04a
- Prevent BillingPage query from rerunning on each mutation
(@FrankHarland)
43bd04a
- Prevent BillingPage query from rerunning on each mutation0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores530076e
- Moved all usages of useFormPersist to the component to prevent rerenders.#2234 0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores
(@FrankHarland)
#2234 43bd04a
- Prevent BillingPage query from rerunning on each mutation
(@FrankHarland)
0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores530076e
- Moved all usages of useFormPersist to the component to prevent rerenders.#2234 43bd04a
- 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)
#2234 0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores
(@FrankHarland)
#2234 43bd04a
- Add deprecation warnings for useFormMuiRegister. Refactor useFormPersist to useWatch and add a separate <FormPersist/>
component to prevent rerenders.
(@FrankHarland)
#2234 0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scores
(@FrankHarland)
#2234 02da217
- Migrate most usages of useFormAutoSubmit to and deprecated useFormAutoSubmit
(@FrankHarland)
#2234 530076e
- Moved all usages of useFormPersist to the component to prevent rerenders.
(@FrankHarland)
#2234 1a6d0c4
- Mark useFormValidFields as deprecated: Please use TextInputElement, SelectElement, etc. with the showValid prop
(@FrankHarland)
0767bc4
- Upgrade input components to no longer use muiRegister, which improves INP scoresPublished by github-actions[bot] 6 months ago
a0d952e
- Moved product reviews to the relatedUpsells query so we do not pass the queryComplexity limita0d952e
- Moved product reviews to the relatedUpsells query so we do not pass the queryComplexity limitPublished by github-actions[bot] 6 months ago
84c50e4
- Allow Lingui to use linguiLocale with country identifiers like en-us
, it would always load en
in this case. Introced a new useLocale
hook to use the correct locale string to use in Intl methods.84c50e4
- Allow Lingui to use linguiLocale with country identifiers like en-us
, it would always load en
in this case. Introced a new useLocale
hook to use the correct locale string to use in Intl methods.84c50e4
- Allow Lingui to use linguiLocale with country identifiers like en-us
, it would always load en
in this case. Introced a new useLocale
hook to use the correct locale string to use in Intl methods.84c50e4
- Allow Lingui to use linguiLocale with country identifiers like en-us
, it would always load en
in this case. Introced a new useLocale
hook to use the correct locale string to use in Intl methods.84c50e4
- Allow Lingui to use linguiLocale with country identifiers like en-us
, it would always load en
in this case. Introced a new useLocale
hook to use the correct locale string to use in Intl methods.84c50e4
- Allow Lingui to use linguiLocale with country identifiers like en-us
, it would always load en
in this case. Introced a new useLocale
hook to use the correct locale string to use in Intl methods.