Commit Graph

2410 Commits

Author SHA1 Message Date
Mike Jolley 08e8e4dd59 Added docs for canMakePayment props 2021-03-08 11:22:04 +00:00
Raluca Stan 627f884880 Update @wordpress/is-shallow-equal to v3.0.1 (https://github.com/woocommerce/woocommerce-blocks/pull/3919)
This update is made in order to have the typed version of the package available.
2021-03-05 15:09:32 +00:00
Albert Juhé Lluveras 0e1b1e3579 Add types to packages directory (https://github.com/woocommerce/woocommerce-blocks/pull/3914)
* Add Typescript to Panel and Icon

* Fix Icon component import

* Convert packages/checkout/utils/validation/index to TypeScript

* Convert checkout registry to TypeScript

* Add return type to mustContain

* Add TypeScript to Totals components from @woocommerce/blocks-checkout

* Add TypeScript to @woocommerce/price-format

* Use types from @woocommerce/type-defs when possible

* Allow empty objects when loading

* Fix formatting in payment-method-data-context.js

* Add missing return types

* Fix up price warnings

* Fix more warnings in FormattedMonetaryAmount

Co-authored-by: Raluca Stan <ralucastn@gmail.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Mike Jolley <mike.jolley@me.com>
2021-03-05 14:03:48 +00:00
Thomas Roberts ba16cf9b74 Inherit line height in Cart item total (https://github.com/woocommerce/woocommerce-blocks/pull/3897) 2021-03-05 14:02:11 +00:00
Mike Jolley f856756ace Update Single Product Test (https://github.com/woocommerce/woocommerce-blocks/pull/3924)
* Update Single Product Test

* duplicate test

* Try adding npm install @wordpress/e2e-tests@1.9.1

* @wordpress/e2e-test-utils@4.5.0
2021-03-05 13:33:58 +00:00
Mike Jolley 8da192a73f Update Storybook and alias `wordpress-components` (https://github.com/woocommerce/woocommerce-blocks/pull/3878)
* Update storybook

* Add alias for wordpress-components

* update package lock
2021-03-04 16:58:10 +00:00
Albert Juhé Lluveras 0c698b25b2 Add OrderSummary test for woocommerce/woocommerce-blocks#3876 (https://github.com/woocommerce/woocommerce-blocks/pull/3909) 2021-03-04 16:07:57 +01:00
renovate[bot] e922ced292 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/3896)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-04 15:09:42 +01:00
Seghir Nadir 8a89bb0dc0 Sync cart item quantity if its Implicitly changed. (https://github.com/woocommerce/woocommerce-blocks/pull/3907)
* sync quantity when changed outside component

* fix sync hook
2021-03-04 14:56:56 +01:00
renovate[bot] 050189b373 Pin dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/3910)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-03 05:11:39 +00:00
renovate[bot] 4f23dfeba7 Update babel monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/3911)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-03 03:33:41 +00:00
Darren Ethier d70cffa580 bump version after release 2021-03-02 15:34:41 -05:00
github-actions[bot] 7c0ed1e414 Release: 4.6.0 (https://github.com/woocommerce/woocommerce-blocks/pull/3900)
* generating changeset for pull request

* generating changeset for pull request

* update changelog in readme.txt

* fix zip script to account for spaces in path

* fix deploy script to account for paths

* add testing notes

* Update docs/testing/releases/460.md

Fix incorrect version reference.

* Show cart item subtotal instead of total in Cart and Checkout blocks (https://github.com/woocommerce/woocommerce-blocks/pull/3905)

* Show cart item subtotal instead of total in Cart and Checkout blocks

* Update test that would have caught this error

* Update changelog and testing steps

* update docs index

* update testing zip file

* update changelog in readme.txt

* update github-deploy to account for spaces in local path

* Bumping version strings to new version.

* add tsconfig.base.json to excludes for release builds

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-03-02 15:31:13 -05:00
Albert Juhé Lluveras fcca5bf948 Only set wp-edit-post style dependency if it has already been enqueued (https://github.com/woocommerce/woocommerce-blocks/pull/3898)
* Only set wp-edit-post style dependency if it has already been enqueued

* Update comment so it references to the new PR as well
2021-03-02 15:53:23 +01:00
Albert Juhé Lluveras 66d0e47427 Show cart item subtotal instead of total in Cart and Checkout blocks (https://github.com/woocommerce/woocommerce-blocks/pull/3905)
* Show cart item subtotal instead of total in Cart and Checkout blocks

* Update test that would have caught this error
2021-03-02 15:47:43 +01:00
Darren Ethier 53e4c40c56 Improvements to payment methods integration docs (https://github.com/woocommerce/woocommerce-blocks/pull/3890)
* Client side improvement to the payment method integration docs

* improvements to php docs

* Improvements to server side documentation of Payment Method Checkout blocks integration

* Update docs/extensibility/payment-method-integration.md

Co-authored-by: Allen Smith <loranallensmith@gmail.com>

* Update docs/extensibility/payment-method-integration.md

Co-authored-by: Allen Smith <loranallensmith@gmail.com>

* Update docs/extensibility/payment-method-integration.md

Co-authored-by: Allen Smith <loranallensmith@gmail.com>

* Update docs/extensibility/payment-method-integration.md

Co-authored-by: Allen Smith <loranallensmith@gmail.com>

* More edits addressing feedback.

* Update docs/extensibility/payment-method-integration.md

Co-authored-by: Allen Smith <loranallensmith@gmail.com>

Co-authored-by: Allen Smith <loranallensmith@gmail.com>
2021-03-01 12:52:35 -05:00
Darren Ethier 72d7c46472 Followups and improvements on TS implementation in the Cart data store. (https://github.com/woocommerce/woocommerce-blocks/pull/3893)
* Fix tslint warnings

* Install @automattic/data-stores to get access to some type generics for use with our data stores.

* improve ts typing of cart-data store.

* fix incorrect rebase conflict resolution.
2021-03-01 12:47:22 -05:00
Darren Ethier 253d29b9e1 Move `triggerFetch.setNonce` calls into separate function and add appropriate guards. (https://github.com/woocommerce/woocommerce-blocks/pull/3892) 2021-03-01 06:22:24 -05:00
renovate[bot] 65bf332397 Update dependency @stripe/react-stripe-js to v1.3.0 (https://github.com/woocommerce/woocommerce-blocks/pull/3885)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-26 14:54:13 +00:00
Thomas Roberts e49a7eaffd Update Label component to TSX (https://github.com/woocommerce/woocommerce-blocks/pull/3889)
* Add tsconfig to components directory and include it as project

* Add @types/classnames package

* Migrate Label component to TSX

* Remove unused imports from Label component

* fix package-lock.json

It was generated with npm 7 and we don’t support that yet (and that update should be done in a separate pull)

* Add interface for LabelProps and implement.

Also:
- import `Fragment` from @wordpress/element.
- import `HTMLAttributes` explicitly as a type from react (@types/wordpress__element doesn’t export this interface).

* fix jest configuration

Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
2021-02-26 11:57:49 +00:00
renovate[bot] cb2dbb1591 Update babel monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/3884)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-24 10:30:43 +00:00
renovate[bot] 42db41a06d Update Node.js to v12.21.0 (https://github.com/woocommerce/woocommerce-blocks/pull/3883)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-24 08:55:15 +00:00
renovate[bot] 5a5de268fe Pin dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/3882)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-24 04:45:58 +00:00
Darren Ethier af99c16931 Add TypeScript support and convert cart data store to TypeScript (https://github.com/woocommerce/woocommerce-blocks/pull/3768)
* add typescript support

* Add type declarations for Cart and CartResponse interfaces

* make sure we’re resolving .ts files as well as .js files on imports

* add more types

* type the cart data store

* Apply suggestions from code review (implement .tsx in configs)

Co-authored-by: Jon Surrell <jon.surrell@automattic.com>

* remove global fetchMock declaration and directly import where used.

* rename type

* remove named action types and just infer by returning action creator values as const

* use interface instead of type

* rename

* renames

* create CartAction type as union of action creator returned types and implement in reducer

* remove unused imports

* refresh package-lock after rebase

* Add base TS config that projects will inherit from

* Add tsconfig for assets/js/data project

* Ignore TS error on cart store registration

We will address this in cooldown when we have time to investigate further

* Add tsc to build step to catch TypeScript errors

* add a separate command for tsc and tweak build command to use

* restore checkJs and allowJs values in config and remove ts check from build command

* Add ts:check-all command

* Add TypeScript checking workflows

* Change triggers for TypeScript workflow

* Use npm ci instead of npm install

* Remove ts:check-all from TypeScript workflow

* Remove TS Check GitHub workflow

* Remove type-defs dir from TS include, and remove ts:check-all script

We no longer need the ts:check-all script because ts:check will do this for us, the old ts:check did nothing and did not work.

* fix coupon loading issues

* include .ts files only from type-defs folder

Co-authored-by: Jon Surrell <jon.surrell@automattic.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
2021-02-23 20:36:24 -05:00
Thomas Roberts 549afc1065 Merge branch 'release/4.5.1' into trunk 2021-02-23 11:38:52 +00:00
Thomas Roberts 583402a9d6 Bumping version strings to new version. 2021-02-23 11:19:09 +00:00
Thomas Roberts 7b1bd90f61 Update changelog to describe a bug fix more appropriately 2021-02-23 10:35:24 +00:00
Thomas Roberts 81fdd45f70 Update changelog in readme 2021-02-23 10:20:05 +00:00
Thomas Roberts 76d00db174 Update testing docs 2021-02-23 10:18:57 +00:00
Thomas Roberts 78a0680657 Show total sale badge in medium carts & make it display below price (https://github.com/woocommerce/woocommerce-blocks/pull/3879)
* Show total sale badge in medium carts

* Add markup to cart line item row to enable it to be displayed as flex

* Add styling to display price and sale badge as flex

* Revert product price being displayed as block

* Rename sale badge and price wrapper

* Hide line-total sale badge on mobile

* Change class name on total price and sale badge wrapper again
2021-02-23 10:14:48 +00:00
Thomas Roberts caaedfb386 Show total sale badge in medium carts & make it display below price (https://github.com/woocommerce/woocommerce-blocks/pull/3879)
* Show total sale badge in medium carts

* Add markup to cart line item row to enable it to be displayed as flex

* Add styling to display price and sale badge as flex

* Revert product price being displayed as block

* Rename sale badge and price wrapper

* Hide line-total sale badge on mobile

* Change class name on total price and sale badge wrapper again
2021-02-23 10:12:27 +00:00
Thomas Roberts 1e93a75104 Update zip file in testing notes 2021-02-22 14:19:12 +00:00
Thomas Roberts 8a73b5c870 Fix cart line subtotal display when currency has 0 decimals (https://github.com/woocommerce/woocommerce-blocks/pull/3876)
* Fix cart line subtotal display when currency has 0 decimals

* Fix wrong usages of getCurrency instead of getCurrencyFromPriceResponse

* Add tests

* Move comment in tests to relevant line
2021-02-22 14:16:23 +00:00
Thomas Roberts 366e0a1875 Add 4.5.2 testing notes 2021-02-22 13:46:57 +00:00
Thomas Roberts c7c8fbe4bf Update Readme with changelog 2021-02-22 13:33:04 +00:00
github-actions 68b0fad08b generating changeset for pull request 2021-02-22 13:17:40 +00:00
github-actions aa76de1385 generating changeset for pull request 2021-02-22 13:17:40 +00:00
Albert Juhé Lluveras 0ddf8587d1 Fix cart line subtotal display when currency has 0 decimals (https://github.com/woocommerce/woocommerce-blocks/pull/3876)
* Fix cart line subtotal display when currency has 0 decimals

* Fix wrong usages of getCurrency instead of getCurrencyFromPriceResponse

* Add tests

* Move comment in tests to relevant line
2021-02-22 13:16:45 +00:00
Mike Jolley 6c963c19e5 Fix button style (https://github.com/woocommerce/woocommerce-blocks/pull/3862) 2021-02-22 11:50:23 +00:00
Mike Jolley 4a6c5fc28f Use variation prices (https://github.com/woocommerce/woocommerce-blocks/pull/3854) 2021-02-22 11:50:11 +00:00
Mike Jolley 760ad3fa3b StoreAPI: Inject Order and Cart Controllers into Routes (https://github.com/woocommerce/woocommerce-blocks/pull/3871)
* Inject cart_controller into cart routes

* Inject order controller

* Remove todo

* Move reserve stock instance
2021-02-22 11:49:25 +00:00
Raluca Stan c4edcc2740 Move ProductSortSelect and ProductListItem under /product-list (https://github.com/woocommerce/woocommerce-blocks/pull/3870) 2021-02-22 12:04:29 +01:00
Thomas Roberts f923615949 Add information about hub authentication and GitHub releases (https://github.com/woocommerce/woocommerce-blocks/pull/3861) 2021-02-22 09:15:22 +00:00
Raluca Stan 76295fc972 Move payment-methods folder from base components to cart-checkout block (https://github.com/woocommerce/woocommerce-blocks/pull/3866) 2021-02-19 16:16:39 +01:00
Thomas Roberts b6650ab0bc Replace uppercase Translators with translators & make comment style consistent (https://github.com/woocommerce/woocommerce-blocks/pull/3869)
* Replace uppercase Translators with translators

* Change comment style for all // translators instances
2021-02-19 11:58:44 +00:00
Darren Ethier b0c7260d05 Update 410.md
Fix spacing
2021-02-18 09:26:02 -05:00
Darren Ethier 426b681157 Update 410.md
Add missing screenshots
2021-02-18 09:25:36 -05:00
Raluca Stan 7e54af999f Handle out of stock product visibility setting in All Products block. (https://github.com/woocommerce/woocommerce-blocks/pull/3859)
* Take stock status into account for All Products block.

A new `hideOutOfStockItems` setting flag has been added and it is used to hide the out of stock products
from the block. Products that are not out of stock can have 'instock', 'onbackorder' as stock status.

* Update StoreApi docs with new stock_status

* Fix the stock_status query param for collections of products
2021-02-18 10:53:48 +01:00
Mike Jolley 077aaf2be3 Only use SHOP_URL if set (https://github.com/woocommerce/woocommerce-blocks/pull/3845) 2021-02-17 15:17:54 +00:00
Albert Juhé Lluveras b2339bda5d Update Panel component class names to follow guidelines (https://github.com/woocommerce/woocommerce-blocks/pull/3860)
* Rename panel class names to follow correct guidelines

* Remove unused CSS

* Add docs page link
2021-02-17 14:48:53 +01:00
Mike Jolley 5f5bcd7c06 Refactor block types to include script registration and integration classes (https://github.com/woocommerce/woocommerce-blocks/pull/3829)
* Move bulk of payment registry/interface to more generic classes

* Implement registries for block types

* Split editor and frontend integration contexts

* Make abstract dynamic blocks extend the abstract block class

* Remove block type scripts from assets

* deprecate register_block_script

* Updates remaining blocks with new AbstactBlock which takes care of script enqueueing

* Add suffix to integration registry

* rename translator comment

* clarify method comment

* Wrong variable after rebase
2021-02-17 14:18:35 +01:00
Seghir Nadir 30c2079af4 Enhance checkout filter system. (https://github.com/woocommerce/woocommerce-blocks/pull/3835)
* Add filter to extend product price

* Remove code targeting WC Subscriptions

* Rename filter

* Use extendibility API instead of filters

* Remove __EXPERIMENTAL_CART_ITEM_PRICE_FILTER from docs

* throw errors on validation

* Don't catch filter errors for admins

* Add tests

* wrap filter calls in memo

* pass extensions as top level prop

* abstract errors

* add jsdoc

* update tests

* review

* turn __experimentalApplyCheckoutFilter into a hook and move useMemo inside it

* revert name

* wrap getCheckoutFilters in useMemo

* refactor filter function so memozation is done inside components

* unify true instance

* fix rebase

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-02-17 14:01:20 +01:00
Albert Juhé Lluveras eac22ca2f7 Remove shadows from text buttons and gradient background from selects in some themes (https://github.com/woocommerce/woocommerce-blocks/pull/3846)
* Reset select background property instead of only background-color

* Set text-shadow to none in text-button mixin
2021-02-17 13:40:52 +01:00
Darren Ethier b79066b5a5 Update 410.md
improve testing notes section about WordPress 5.6
2021-02-17 07:26:48 -05:00
Darren Ethier 0675355cf7 Update 440.md
Fix testing note in wrong section.
2021-02-17 07:24:49 -05:00
Thomas Roberts 89e6708573 Remove line in incorrect version from readme.txt 2021-02-17 12:00:55 +00:00
Bartosz Budzanowski 37a590abed Fix typo.
enqueing -> enqueuing
2021-02-17 12:33:26 +01:00
Thomas Roberts 222499a9ff Update plugin version to 4.6.0-dev 2021-02-17 09:46:15 +00:00
Thomas Roberts 4cbfb85ff9 Merge branch 'release/4.5.1' into trunk 2021-02-17 09:41:45 +00:00
renovate[bot] 37bdb53493 Update babel monorepo to v7.12.16 (https://github.com/woocommerce/woocommerce-blocks/pull/3858)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-17 06:18:50 +00:00
renovate[bot] fae1fa0f4b Update Node.js to v12.20.2 (https://github.com/woocommerce/woocommerce-blocks/pull/3857)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-17 04:29:07 +00:00
Thomas Roberts 4e409e2fc5 Update changelog for 4.4.2 and 4.5.1 2021-02-16 19:31:01 +00:00
github-actions 82ccf5b159 generating changeset for pull request 2021-02-16 18:09:09 +00:00
github-actions e5441060ec generating changeset for pull request 2021-02-16 18:09:09 +00:00
Thomas Roberts 70262ab890 Bumping version strings to new version. 2021-02-16 18:08:49 +00:00
Thomas Roberts 3f79b42c14 Bumping version strings to new version. 2021-02-16 16:40:15 +00:00
Thomas Roberts 71cbc9cfa0 Update date of release in readme 2021-02-16 16:38:04 +00:00
Thomas Roberts 20a9d9ff22 Fix a typo in the word image 2021-02-16 14:27:11 +00:00
Thomas Roberts 3d1fc239d3 Remove documentation improvement from changelog 2021-02-16 14:02:56 +00:00
Thomas Roberts aaab546b39 Update zip file for testing 2021-02-16 13:47:57 +00:00
Thomas Roberts c9ade2c722 Update testing documentation and changelog with blocking changes 2021-02-16 12:32:32 +00:00
Thomas Roberts 4fe4060fec Fix product price not displaying properly when product is on sale (https://github.com/woocommerce/woocommerce-blocks/pull/3853)
* Use else if in ProductPrice

This is because the priceComponent variable should be set depending on some conditions, but multiple of them could be true, so by using else if we only handle the first true case

* Update snapshots for jest
2021-02-16 12:30:10 +00:00
Thomas Roberts f693fd50ee Fix product price not displaying properly when product is on sale (https://github.com/woocommerce/woocommerce-blocks/pull/3853)
* Use else if in ProductPrice

This is because the priceComponent variable should be set depending on some conditions, but multiple of them could be true, so by using else if we only handle the first true case

* Update snapshots for jest
2021-02-16 11:42:11 +00:00
Albert Juhé Lluveras f4f95eb26e Show cart item total price including taxes when DISPLAY_CART_PRICES_INCLUDING_TAX is true (https://github.com/woocommerce/woocommerce-blocks/pull/3851)
* Show cart item total price including taxes when DISPLAY_CART_PRICES_INCLUDING_TAX is true

* Show cart item total price including taxes in Checkout block too
2021-02-16 10:14:24 +00:00
Albert Juhé Lluveras 5ba68af58b Show cart item total price including taxes when DISPLAY_CART_PRICES_INCLUDING_TAX is true (https://github.com/woocommerce/woocommerce-blocks/pull/3851)
* Show cart item total price including taxes when DISPLAY_CART_PRICES_INCLUDING_TAX is true

* Show cart item total price including taxes in Checkout block too
2021-02-16 09:45:31 +00:00
Thomas Roberts 1fb61c1199 Update release testing documenatation 2021-02-15 20:01:32 +00:00
Thomas Roberts 6a2d8e331d Update readme.txt with 4.5.0 release changelog 2021-02-15 17:47:16 +00:00
github-actions 2aadfdc652 generating changeset for pull request 2021-02-15 17:29:46 +00:00
github-actions bd08f3988e generating changeset for pull request 2021-02-15 17:29:46 +00:00
Mike Jolley be4d32d705 Pages must be published to be valid (https://github.com/woocommerce/woocommerce-blocks/pull/3843) 2021-02-15 16:48:30 +00:00
Mike Jolley 51789e2105 Login via account page (https://github.com/woocommerce/woocommerce-blocks/pull/3844) 2021-02-15 16:46:02 +00:00
Thomas Roberts edf79c699a Catch errors during cart validation (https://github.com/woocommerce/woocommerce-blocks/pull/3703)
* Add new exceptions for out of stock scenarios

These are needed to differentiate between the different stock validation errors, and so we can create the correct error message.

* Catch new out of stock exceptions when checking the cart for errors

This is so we can get the cart sent back to the client, if we don't catch these, then the route will just return a 500 error and crash.

* Add ArrayUtils class

This will contain methods used to operate on arrays that don't fit anywhere else.

* Handle the case in Checkout where the error is already a WP_Error

This will happen when the cart fails validation.

* Handle StockAvailabilityException in AbstractRoute

This will happen when an item or number of items in the cart are out of stock/insufficient stock.

* Throw exceptions for each type of invalid stock in validate_cart_items

This will allow us to create an error message for each type of violation to display to the user.

* Display additional error notices returned by the API

* Fix wording when throwing exceptions relating to stock

* Handle TooManyInCartException in CartController

* Abstract the merging of cart, status, and additional data into new fn

This allows us to simplify the way errors are returned from the API. The reason we have to add all of the data at once is because of how WP_Error works with the additional data, if there is already existing data in a WP_Error object, it gets moved into additional_data. By adding all of the data in one place, we stop this from happening. Also since we're only adding status and/or cart explicitly, it makes sense to just do it in one place.

* Add get_route_error_response_from_object method

This is so we can differentiate between a string and WP_Error object.

* Remove unnecessary slashes from WP_Error instantiation

* Add option to enclose each item in quotes in natural_language_join

* Abstract adding error messages to error object into single function

A lot of code was repeated, so doing this cuts down on that and ensures any changes only need to be made in one place.

* Create new parent exception for each type of out of stock exception

This is so we don't have to repeat code inside each different exception and we can simply inherit StockAvailabilityException.

* Catch the generic StockAvailabilityException in get_cart_item_errors

* No longer recalculate totals in validate function

It is not needed, the totals are recalculated elsewhere. This call was superfluous.

* Reduce nesting, and only throw exception if error object has errors

* Improve comment on get_route_error_response_from_object method

* Fix nesting when throwing the InvalidStockLevelsInCartException

* Catch errors during cart validation

* Add get_error_message_for_stock_exception_type function

This will be used to get an error message depending on the type of extension, and whether the plural form, or singular form is needed. This abstraction is better because the code is used in more than one place in the API.

* Use error message generation function instead of creating errors individually

* Use specific error codes for each type of error & fix PHPDoc

Now the stock_exceptions_to_wp_errors function will return an array of WP_Errors this is better as the client needs a distinct error code to display and replace notices.

* No longer remove items from cart or modify quantity if there is an error

* Return the WP_Error from RouteException or all Stock WP_Errors

* Fix error in PHPDoc

* No longer necessary to add get_cart_item_errors into an array

This is because the method always returns an array now.

* Rename variables in get_cart_item_errors to be more descriptive

* Improve PHPDoc on get_cart_item_errors

* Replace underscores with hyphens in error code

* Only return WP_Errors that have an actual error in them

* Add unit test for ensure the cart errors relating to stock are handled

* Fix typo in comment

* Use optional chaining to add errors to cart
2021-02-15 14:03:04 +00:00
renovate[bot] c8adb17cd1 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/3842)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-15 12:23:43 +00:00
Albert Juhé Lluveras e5f6a1047c Allow extensions to extend cart item price (https://github.com/woocommerce/woocommerce-blocks/pull/3750)
* Add filter to extend product price

* Extend order summary product price too

* Make it so 'format' is applied to all product price types

* Order

* Pass lineItem to the filter

* Remove code targeting WC Subscriptions

* Rename filter

* Remove unnecessary CSS block that made prices be displayed as blocks

* Use line item totals instead of product price multiplied by quantity to show line item price

* Fix wrong currency usage

* Add comment to disable eslint

* Fix JS error when totals is undefined

* Align order summary item price to the right

* Use extendibility API instead of filters

* Remove __EXPERIMENTAL_CART_ITEM_PRICE_FILTER from docs

* fix rebase

Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2021-02-12 00:37:05 +01:00
Seghir Nadir f7894b3c7f remove unsed imports (https://github.com/woocommerce/woocommerce-blocks/pull/3811) 2021-02-11 15:29:43 -05:00
Mike Jolley e9cc965aea Update jetpack autoloader dependency to 2.9.1 (https://github.com/woocommerce/woocommerce-blocks/pull/3832)
* Update jetpack autoloader and make version dependency more permissive

* lock file
2021-02-11 17:53:54 +00:00
Mike Jolley 7772d41007 Extensibility for Block Checkout Address Fields (https://github.com/woocommerce/woocommerce-blocks/pull/3662)
* Pass get_country_locale via assets

* Create helper to prepare and merge address fields

* Use new helper in address form

* Only pass field overrides now that fields are merged

* Fixc configs and remove lodash usage

* Prevent formatting of empty postcodes to suppress api error

* prevent memo on rerender

* Conitonal enqueue of locale data

* define index in increments of 10

* remove address-form

* circ deps changes

* Workaround for core data issue

* fix test

* remove prepareAddressFields export

* Remove old comment

* object from.entries polyfil

* Revert "object from.entries polyfil"

This reverts commit ba343adcf5fd2f843b225aebe340cce9b664c851.

* replace fromentries

* fix final fromentries
2021-02-11 16:49:27 +00:00
Mike Jolley 66fbd9738b Moved Nonce Logic to Cart API Classes (https://github.com/woocommerce/woocommerce-blocks/pull/3812)
* Reduce repetition in SchemaController::initialize

* Ensure AbstractCartRoute has a cart schema when it returns errors

* Move nonce logic to cart

* typo
2021-02-11 16:26:52 +00:00
Seghir Nadir 39ab3070c8 fix double imports 2021-02-11 16:36:24 +01:00
Seghir Nadir d107dc89a9 Allow extensions to extend Cart Item Name in Cart and Checkout. (https://github.com/woocommerce/woocommerce-blocks/pull/3807)
* Add validation function

* Prefix validateElementOrString with __experimental

* Update experimental docs

* Typo

* Update JS docs

* Use an object for applyCheckoutFilter args

* Args doesn't need to be an object

* Wrap validation function execution in a try/catch block

* Only accept strings for the totalLabel filter

* Change applyCheckoutFilter signature

* Add validation function

* Add Product name filter

* rebase

* update second filter call

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-02-11 13:40:55 +01:00
renovate[bot] 03551edae8 Update dependency @automattic/color-studio to v2.4.0 (https://github.com/woocommerce/woocommerce-blocks/pull/3819)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-11 10:57:17 +01:00
Thomas Roberts cb09248b07 Add subtotal and sale badge filters - PR to correct branch (https://github.com/woocommerce/woocommerce-blocks/pull/3826)
* Replace filters with an extendibility API to hook into Cart and Checkout blocks

* Update docs

* Add a validate argument

* Add docs comments

* Add tests

* Add validation function

* Prefix validateElementOrString with __experimental

* Update experimental docs

* Typo

* Update comment

* Update JS docs

* Use an object for applyCheckoutFilter args

* Args doesn't need to be an object

* Wrap validation function execution in a try/catch block

* Only accept strings for the totalLabel filter

* Change applyCheckoutFilter signature

* Apply filters for subtotal and sale badge in CartLineItemRow

* Append suffix to prices and SaleBadge if passed in as a prop

* Add subtotal filter to OrderSummaryItem

* Add tests for OrderSummaryItem and ProductPrice

* Rename test for ProductPrice

* Update checkout filter registration plugin name

* Remove obsolete snapshop

* Remove suffix and change to format

This is because we want to make the entire price string editable, not just the part after it.

* Change formatting on SaleBadge to use createInterpolateElement

* Remove tests that are no longer needed.

* Update ProductPrice tests to reflect changes to format prop

* Check that subtotalPriceFormat contains <price/> in OrderSummaryItem

* Fix cart block styling to stop badges overflowing the container

* Add <price/> placeholder in OrderSummaryItem price filter

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-02-10 17:12:47 +00:00
renovate[bot] 2e90e95551 Update dependency @stripe/stripe-js to v1.12.1 (https://github.com/woocommerce/woocommerce-blocks/pull/3820)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-10 13:32:18 +00:00
Albert Juhé Lluveras 7b829b8a82 Use cart item key instead of name as the React key in Package (https://github.com/woocommerce/woocommerce-blocks/pull/3814) 2021-02-10 12:37:58 +01:00
renovate[bot] 7afdb11dc4 Update dependency @types/react to v16.14.3 (https://github.com/woocommerce/woocommerce-blocks/pull/3822)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-10 11:11:21 +00:00
renovate[bot] abb3323e00 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/3808)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-10 10:28:53 +01:00
renovate[bot] a9800f5ef7 Update dependency mini-css-extract-plugin to v1.3.6 (https://github.com/woocommerce/woocommerce-blocks/pull/3823)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-10 03:22:45 +00:00
renovate[bot] e70e3e6e40 Update dependency @testing-library/user-event to v12.6.3 (https://github.com/woocommerce/woocommerce-blocks/pull/3821)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-10 02:34:41 +00:00
renovate[bot] a9626c8d06 Update babel monorepo to v7.12.13 (https://github.com/woocommerce/woocommerce-blocks/pull/3818)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-10 01:11:36 +00:00
Albert Juhé Lluveras 1a97bf80b0 Replace filters with an extendibility API to hook into Cart and Checkout blocks (https://github.com/woocommerce/woocommerce-blocks/pull/3774)
* Replace filters with an extendibility API to hook into Cart and Checkout blocks

* Update docs

* Add a validate argument

* Add docs comments

* Add tests

* Add validation function

* Prefix validateElementOrString with __experimental

* Update experimental docs

* Typo

* Update comment

* Update JS docs

* Use an object for applyCheckoutFilter args

* Args doesn't need to be an object

* Wrap validation function execution in a try/catch block

* Only accept strings for the totalLabel filter

* Change applyCheckoutFilter signature
2021-02-09 17:54:38 +01:00