woocommerce/plugins/woocommerce-blocks/packages/checkout/utils
Mike Jolley a932ceb59f
Fix extensionCartUpdates not surfacing errors to cart and checkout (#49762)
* Add context to type

* Clean up notifyerrors helpers

* Notify and clear top level cart errors

* changelog

* Make extensionCartUpdate surface the errors

* No automatic clearing of notice

* Handle generic errors only, add docs

* Rename param

* Fix linting in readme

* Update toc

* test coverage

* Unused import

* We're only dealing with arrays of errors so simplify logic
2024-08-14 15:24:44 +01:00
..
validation Checkout: Add password strength meter to new field (#49164) 2024-07-15 16:22:42 +01:00
README.md Fix extensionCartUpdates not surfacing errors to cart and checkout (#49762) 2024-08-14 15:24:44 +01:00
extension-cart-update.ts Fix extensionCartUpdates not surfacing errors to cart and checkout (#49762) 2024-08-14 15:24:44 +01:00
index.js Add cart/extensions endpoint to allow third party extensions to process server-side and get a new cart (https://github.com/woocommerce/woocommerce-blocks/pull/4298) 2021-06-07 12:16:47 +03:00

README.md

Utilities

Table of Contents

Miscellaneous utility functions for dealing with checkout functionality.

extensionCartUpdate

When executed, this will call the cart/extensions REST API endpoint. The new cart is then received into the client-side store. extensionCartUpdate returns a promise that resolves when the cart is updated which should also be used for error handling.

extensionCartUpdate Usage

// Aliased import
import { extensionCartUpdate } from '@woocommerce/blocks-checkout';

// Global import
// const { extensionCartUpdate } = wc.blocksCheckout;

extensionCartUpdate( {
	namespace: 'extension-unique-namespace',
	data: {
		key: 'value',
	},
} ).then( () => {
	// Cart has been updated.
} ).catch( ( error ) => {
	// Handle error.
} );

extensionCartUpdate Options

The following options are available:

args (object, required)

Args to pass to the Rest API endpoint. This can contain data and a namespace to trigger extension specific functionality on the server-side. You can read more about this, and the server-side implementation, in this doc.

mustContain

Ensures that a given value contains a string, or throws an error.

mustContain Usage

// Aliased import
import { mustContain } from '@woocommerce/blocks-checkout';

// Global import
// const { mustContain } = wc.blocksCheckout;

mustContain( 'This is a string containing a <price />', '<price />' ); // This will not throw an error
mustContain( 'This is a string', '<price />' ); // This will throw an error

mustContain Options

The following options are available:

value (string, required)

Value being checked. Must be a string.

requiredValue (string, required)

What value must contain. If this is not found within value, and error will be thrown.


We're hiring! Come work with us!

🐞 Found a mistake, or have a suggestion? Leave feedback about this document here.