Commit Graph

2801 Commits

Author SHA1 Message Date
Thomas Roberts 984c5a0eb1 Add type argument to getSetting (https://github.com/woocommerce/woocommerce-blocks/pull/4361) 2021-06-17 08:50:52 +01:00
Thomas Roberts 60b95041ff Fix error about duplicate keys in TotalsFees (https://github.com/woocommerce/woocommerce-blocks/pull/4360) 2021-06-17 08:49:45 +01:00
Mike Jolley 84718840d6 Update Express Payments Loading UI (https://github.com/woocommerce/woocommerce-blocks/pull/4228)
* Separate button spinner to separate component for reuse

* Use block checkout spinner in loading mask

* Block pointer events within loading mask

* Give the useRef within useShallowEqual a default value

This prevents the potential of having an undefined value returned.

* State setter and dispatch are stable

These do not need to be used as dependencies.

* Prevent re-renders of children when using loading mask.

This prevents children being rerendered and losing state. Loading styles are applied instead using a classname, but leaving the divs in place.

* Use memoization to to prevent excessive express payment rerenders

* Wrap express payment in loading mask

* Show loading state after submission

* remove eslint exclusion

* Move spinner to base components so it's available outside of the checkout package

* Avoid extra is-loading classname

* Update snaps/fix tests

* Remove memorization of payment method content due to stale data

* Express payment error handling

* Split up payment method context to make it more manageable

* Add blocking logic to cart

* Update snap

* Restore useRef

* Fix missing function removed by accident

* Fix setActivePaymentMethod and started status (so saved methods still allow express to be initialized)

* Loading Mask Todo

* Remove boolean shallow equals

* Missing dep

* Memoize typo

* Document changes in useStoreEvents

* Replace expressPaymentMethodActive

* setExpressPaymentError deprecation

* Only change status if an error is passed

* Track disabled state via useCheckoutSubmit

* useCallback on error message functions

* Fix mocks in test
2021-06-16 13:44:40 +01:00
renovate[bot] fa9e1447e7 Update dependency @stripe/stripe-js to v1.15.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4357)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-16 03:59:02 +00:00
renovate[bot] a5ea5910f6 Update babel monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/4356)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-16 03:56:38 +00:00
renovate[bot] 5b18379888 Update npm to v6.14.13 (https://github.com/woocommerce/woocommerce-blocks/pull/4355)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-16 03:54:06 +00:00
renovate[bot] c213519cf5 Update dependency github-label-sync to v2.0.1 (https://github.com/woocommerce/woocommerce-blocks/pull/4354)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-16 02:31:43 +00:00
renovate[bot] 3fbb9132d0 Update dependency @types/wordpress__data-controls to v1.0.5 (https://github.com/woocommerce/woocommerce-blocks/pull/4353)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-16 00:39:55 +00:00
renovate[bot] 534ca71864 Update dependency @octokit/graphql to v4.6.4 (https://github.com/woocommerce/woocommerce-blocks/pull/4352)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-16 00:37:26 +00:00
Albert Juhé Lluveras 4918bc40c0 Update version to 5.4.0-dev 2021-06-15 11:48:17 +02:00
Albert Juhé Lluveras 4cd12a8108 Add 5.3.1 testing instructions (https://github.com/woocommerce/woocommerce-blocks/pull/4351)
* Update changelog and compatibility version for 5.3.1

* Add testing instructions for WC Blocks 5.3.1

* Update ZIP file for WC Blocks 5.3.1 testing
2021-06-15 11:47:11 +02:00
Thomas Roberts 0edcd0ef9a Add documentation for __experimentalDiscountsMeta slot (https://github.com/woocommerce/woocommerce-blocks/pull/4349) 2021-06-15 09:30:13 +01:00
Albert Juhé Lluveras 370c888700 Load woocommerce.css in Site editor (https://github.com/woocommerce/woocommerce-blocks/pull/4345) 2021-06-15 07:33:31 +02:00
Albert Juhé Lluveras 0c5cd9eea0 Make Product Categories List links unclickable in the editor (https://github.com/woocommerce/woocommerce-blocks/pull/4339) 2021-06-15 07:33:16 +02:00
Rua Haszard 8fb7ab7821 Add storybook demo for Chip (https://github.com/woocommerce/woocommerce-blocks/pull/3029)
* add stories for Chip

* Add more knobs to Chip storybook

Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
2021-06-14 16:53:44 +01:00
renovate[bot] f9a0854305 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4344)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-14 08:58:16 +02:00
Albert Juhé Lluveras efc9d44b11 Fix Product Categories List display issues in WP 5.8 (https://github.com/woocommerce/woocommerce-blocks/pull/4335) 2021-06-12 11:44:41 +02:00
renovate[bot] 1d23bd9fc2 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4315)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-11 17:45:04 +02:00
Thomas Roberts 77e5dafbf9 Add DiscountsMeta slot to Checkout sidebar (https://github.com/woocommerce/woocommerce-blocks/pull/4310)
* Add DiscountsMeta slot to Checkout sidebar

* Update Checkout snapshot
2021-06-11 15:37:19 +01:00
Mike Jolley a815993b40 Refactor Render Parent Block (https://github.com/woocommerce/woocommerce-blocks/pull/4325) 2021-06-11 09:54:18 +01:00
Mike Jolley 44b2003ec5 Document and update naming of Block Asset Handles (https://github.com/woocommerce/woocommerce-blocks/pull/4324)
* Document the rules

* Document rules inline

* Typescript support in webpack

* Update webpack config

* Update existing handles

* Name stylesheets same as handles

* prefix vendors and blocks

* Fix script filename
2021-06-09 15:09:42 +01:00
renovate[bot] 4ed2eb1ce6 Update dependency source-map-explorer to v2.5.2 (https://github.com/woocommerce/woocommerce-blocks/pull/4330)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-09 03:20:56 +00:00
renovate[bot] be05624d59 Update dependency wordpress-components to v11.1.5 (https://github.com/woocommerce/woocommerce-blocks/pull/4331)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-09 02:22:04 +00:00
renovate[bot] e31547c20b Update dependency reakit to v1.3.8 (https://github.com/woocommerce/woocommerce-blocks/pull/4329)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-09 02:14:14 +00:00
renovate[bot] e8d647f4d4 Update dependency react-test-renderer to v17.0.2 (https://github.com/woocommerce/woocommerce-blocks/pull/4328)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-09 02:11:20 +00:00
renovate[bot] 74648f6939 Update dependency glob to v7.1.7 (https://github.com/woocommerce/woocommerce-blocks/pull/4327)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-09 02:02:49 +00:00
renovate[bot] 03889f312e Update dependency eslint-import-resolver-webpack to v0.13.1 (https://github.com/woocommerce/woocommerce-blocks/pull/4326)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-09 01:52:24 +00:00
Raluca Stan b7794790b0 Update release date for version 5.3.0 in readme.txt 2021-06-08 12:36:52 +03:00
Raluca Stan 39b1ac9e18 Update version to 5.3.0-dev 2021-06-08 12:20:07 +03:00
github-actions[bot] 8c066b6fa3 Release: 5.3.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4318) 2021-06-08 12:07:57 +03:00
Sebastian Volland eac83ffed4 Add an early return to prevent running an invalid SQL query. (https://github.com/woocommerce/woocommerce-blocks/pull/4317) 2021-06-07 13:40:48 +01:00
Thomas Roberts b190fb93f2 Ensure directories with spaces work with our WP Deploy script (https://github.com/woocommerce/woocommerce-blocks/pull/4316) 2021-06-07 12:33:58 +01:00
Thomas Roberts a20f3425b1 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)
* Move text-input to checkout package

* Add support to TextInput for inputs with type number

* Add ExperimentalDiscountsMeta.Slot to Cart sidebar

* Add extra styles for Button and Panel components

* Add updateCartFromApi util to @woocommerce/blocks-checkout

* Change updateCartFromApi to TypeScript

* Stop passing contexts through the discounts slot fill

* Add CartExtensionsSchema class

* Add CartExtensions Route

* Add register_update_callback and get_update_callback fns

* Add extensionCartUpdate function

* Add applyExtensionCartUpdate action

* Make extensionCartUpdate use batching

* Add ExtensionCartUpdateArgs type definition

* Execute a success/error function after request in extensionCartUpdate

* Remove success and error functions

* Avoid including all schemas in CartExtensionsSchema instantiation

This is achieved by inheriting AbstractSchema and slightly modifying the way in which the latest cart data is returned from this endpoint.

* Update docs for extensionCartUpdate

* Handle errors from extension callbacks

* Throw better errors when incorrect namespace/functions are used

* Add tests for CartExtensions route,  ExtendRestApi update callback registration

* Add dummy get_properties method to CartExtensionsSchema
2021-06-07 12:16:47 +03:00
Thomas Roberts bafa5c2827 Add snackbar filter (https://github.com/woocommerce/woocommerce-blocks/pull/4313) 2021-06-07 11:41:33 +03:00
Michael P. Pfeiffer 20f70b6626 Block Widgets: add block transforms for legacy widgets with a block equivalent (https://github.com/woocommerce/woocommerce-blocks/pull/4292)
* Block Widgets: add transforms for legacy widgets with a block equivalent

* Update All Reviews block transform to more closely resemble the widget

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>

* Convert integers to boolean

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-06-04 16:47:30 +02:00
Thomas Roberts ffa77f26f7 Add Slot/Fill to discounts area in cart sidebar (https://github.com/woocommerce/woocommerce-blocks/pull/4248)
* Move text-input to checkout package

* Pass validation props directly to ValidatedTextInput

* Import label relatively instead of from package

* Pass validation functions to ValidatedTextInput

This is so it doesn't need to get them from useValidationContext.

* Add InputProps to ValidatedTextInput

This will be used to control additional props on the input element of TextInput

* Spread inputProps onto <input> element of TextInput

* Export TextInput from @woocommerce/blocks-checkout

* Add @woocommerce/blocks-checkout package to tsconfig

* Allow styling to be applied to number inputs and when value is 0

* Make style order consistent

* Remove inputProps to rely on rest in TextInput

* Add specific prop for the inputErrorComponent

* Only disallow active state if value is 0 AND type is number

* Change all uses of ValidatedTextInput to also pass inputErrorComponent

* Revert "Change all uses of ValidatedTextInput to also pass inputErrorComponent"

This reverts commit ec734b99c20c4d29fcf778714246fc406ee37eaf.

* Revert "Remove inputProps to rely on rest in TextInput"

This reverts commit 1fc64cca4002206423d1fa443ff2d60130ba1ea0.

* Revert "Revert "Change all uses of ValidatedTextInput to also pass inputErrorComponent""

This reverts commit 110e3606a996668be5a32698b634b7706d16cddc.

* Revert "Revert "Remove inputProps to rely on rest in TextInput""

This reverts commit aeb03526c44b3fcc97a719a18930d08157a80baf.

* Don't pass errorMessage to ValidatedTextInput

* Add DiscountsMetaSlot

* Add ExperimentalDiscountsMeta.Slot to Cart sidebar

* Add extra styles for Button and Panel components

* Export ExperimentalDiscountsMeta from checkout package

* Add updateCartFromApi util to @woocommerce/blocks-checkout

* Add comment to updateCartFromApi

* Change updateCartFromApi to TypeScript

* Revert "Move `TextInput` to checkout package and allow it to be used for input type=number (https://github.com/woocommerce/woocommerce-blocks/pull/4238)"

This reverts commit ee9b2d20e0.

* Stop passing contexts through the discounts slot fill

* Allow ValidatedTextInput to be used for type=number

* Remove contexts from Discounts slot fill

* Update snapshots

* Stop `errorMessage` being spread onto input fields in checkout

* Add paths to tsconfig

* Remove contexts from Discounts slot

* Accept step min and max on ValidatedTextInput

* Remove "no-margin" option on buttons

* Remove spinners from input type number

* Remove `no-top-border` style from panel

* Prevent text in buttons from breaking in the middle of words

* Add checkout package to tsconfig file list

* Stop passing components through DiscountsMetaSlot
2021-06-04 09:44:26 +01:00
Seghir Nadir 749406ecb9 load controls in cart (https://github.com/woocommerce/woocommerce-blocks/pull/4291) 2021-06-04 09:17:13 +01:00
renovate[bot] 7908c09ffc Update dependency autoprefixer to v10.2.6 (https://github.com/woocommerce/woocommerce-blocks/pull/4301)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-03 11:38:46 +00:00
renovate[bot] fa9d93d381 Update dependency @types/gtag.js to v0.0.5 (https://github.com/woocommerce/woocommerce-blocks/pull/4300)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-03 11:36:42 +00:00
Albert Juhé Lluveras 3f1caedb9e Hide Cart and Checkout blocks from the widget editor (https://github.com/woocommerce/woocommerce-blocks/pull/4303) 2021-06-03 09:50:12 +02:00
Darren Ethier c391899258 Fix broken phpunit tests (https://github.com/woocommerce/woocommerce-blocks/pull/4305)
* allow for WOO_VERSION config in tests setup

* pass through WOO_VERSION environment var to container

* force specific WOO_VERSION value for phpunit test run

* try passing through environment variable via docker arg

Also set .env for controlling local runs of phpunit
2021-06-03 09:35:52 +02:00
Seghir Nadir 44f31606c3 set is calculating correctly (https://github.com/woocommerce/woocommerce-blocks/pull/4293) 2021-06-02 14:52:32 +01:00
Seghir Nadir cd3242900e add i18n to wcSettings (https://github.com/woocommerce/woocommerce-blocks/pull/4295) 2021-06-02 14:52:15 +01:00
Thomas Roberts 1702a6c0c3 Check if there are tax lines before rendering the container for them (https://github.com/woocommerce/woocommerce-blocks/pull/4284) 2021-06-02 11:14:42 +01:00
Thomas Roberts f0cb4cba90 Add documentation for the `couponName` filter (https://github.com/woocommerce/woocommerce-blocks/pull/4282)
This was somehow omitted from woocommerce/woocommerce-blocks#4166
2021-06-02 11:11:26 +01:00
Seghir Nadir 1b87589f82 remove usage of mustBeString (https://github.com/woocommerce/woocommerce-blocks/pull/4294) 2021-06-01 09:46:02 +01:00
renovate[bot] 28206058d8 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4290)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-31 16:07:59 +01:00
Thomas Roberts 36e8b1e44f Check if product can be added to cart before adding ajax class to button (https://github.com/woocommerce/woocommerce-blocks/pull/4265) 2021-05-27 12:57:49 +01:00
Thomas Roberts 774364ff56 Update version for next release 2021-05-26 16:10:43 +01:00
Thomas Roberts 24895dd9cf Merge branch 'release/5.2.0' into trunk 2021-05-26 16:09:41 +01:00
Thomas Roberts 30aff545a2 Bumping version strings to new version. 2021-05-26 15:42:21 +01:00
Thomas Roberts f4841cdff1 Update link to testing zip 2021-05-26 15:31:37 +01:00
Thomas Roberts 7920a40df9 Fix display of itemised taxes (https://github.com/woocommerce/woocommerce-blocks/pull/4279)
* Add price to itemised tax rates & hide Total when itemised taxes are on

* Update snapshots for taxes in sidebar
2021-05-26 14:57:56 +01:00
Thomas Roberts 61755f0f01 Fix display of itemised taxes (https://github.com/woocommerce/woocommerce-blocks/pull/4279)
* Add price to itemised tax rates & hide Total when itemised taxes are on

* Update snapshots for taxes in sidebar
2021-05-26 14:04:42 +01:00
renovate[bot] d2b4a91f1f Update dependency downshift to v6.1.3 (https://github.com/woocommerce/woocommerce-blocks/pull/4272)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-26 08:52:31 +00:00
renovate[bot] 1cbf0180e5 Update dependency @types/react to v16.14.8 (https://github.com/woocommerce/woocommerce-blocks/pull/4270)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-26 05:04:55 +00:00
renovate[bot] bd8e3c5275 Update dependency @woocommerce/e2e-utils to v0.1.5 (https://github.com/woocommerce/woocommerce-blocks/pull/4271)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-26 03:47:54 +00:00
renovate[bot] 5984b987b4 Update dependency @types/lodash to v4.14.170 (https://github.com/woocommerce/woocommerce-blocks/pull/4269)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-26 02:30:17 +00:00
Thomas Roberts a2e8c605de Create 5.2.0 testing notes 2021-05-25 15:31:03 +01:00
Thomas Roberts 256af96b92 Update package.json
npm ci was not working correctly this will fix it.
2021-05-25 14:52:37 +01:00
Thomas Roberts 8360d5b384 Update changelog and WC tested up to 2021-05-25 14:26:32 +01:00
Thomas Roberts b187f9f466 Revert "Move `TextInput` to checkout package and allow it to be used for input type=number (https://github.com/woocommerce/woocommerce-blocks/pull/4238)"
This reverts commit ee9b2d20e0.
2021-05-25 14:13:29 +01:00
Mike Jolley cf8ab9fa93 Add key to each `CartTotalItem` (https://github.com/woocommerce/woocommerce-blocks/pull/4240)
* Move type defs

* Move type guards

* Fix imports

* Extract prepareTotalItems to TS file

* usePaymentMethodInterface as TS file

* Fix TS props

* Fix currency type defs

* Add return type to usePaymentMethodInterface

* Add key prop to CartTotalItem

* Fixed up js tests

* Move SymbolPosition into type-defs package

Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
2021-05-25 12:49:13 +01:00
Seghir Nadir 3b69179cbe Fix duplicate plugins by using wp.components global in the editor. (https://github.com/woocommerce/woocommerce-blocks/pull/4211)
* fix duplicate slotProvider

* load file on demand

* add comment and load components in blocks as well

* add todo block
2021-05-25 10:46:28 +01:00
Thomas Roberts c8f6f5e372 Hide "including X in taxes" when the amount of tax is 0 (https://github.com/woocommerce/woocommerce-blocks/pull/4262)
* Hide "including x in taxes" if tax amount is 0

* Add jest types to tsconfig

* Move SHOW_TAXES into component body

This is to make the code more testable and allows us to change values. There's no significant performance impact because of this change.

* Add tests and snapshots for TotalsFooterItem
2021-05-25 08:43:46 +01:00
renovate[bot] bb29ebb12c Update dependency @octokit/graphql to v4.6.2 (https://github.com/woocommerce/woocommerce-blocks/pull/4230)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-24 18:14:37 +01:00
renovate[bot] ae69316957 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4253)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-24 16:40:05 +01:00
Michael P. Pfeiffer 297254eaf7 Block Widgets: hide legacy widgets with a feature-complete block equivalent (https://github.com/woocommerce/woocommerce-blocks/pull/4237)
* Block Widgets: hide legacy widgets with block equivalent

* Unhide Products and Products by Rating widgets
2021-05-21 09:53:46 +02:00
Michael P. Pfeiffer cfad13f3a2 Block Widgets: hide All Products and Filter blocks in the Customizer (https://github.com/woocommerce/woocommerce-blocks/pull/4225) 2021-05-21 09:52:27 +02:00
Thomas Roberts ee9b2d20e0 Move `TextInput` to checkout package and allow it to be used for input type=number (https://github.com/woocommerce/woocommerce-blocks/pull/4238)
* Move text-input to checkout package

* Pass validation props directly to ValidatedTextInput

* Import label relatively instead of from package

* Pass validation functions to ValidatedTextInput

This is so it doesn't need to get them from useValidationContext.

* Add InputProps to ValidatedTextInput

This will be used to control additional props on the input element of TextInput

* Spread inputProps onto <input> element of TextInput

* Export TextInput from @woocommerce/blocks-checkout

* Add @woocommerce/blocks-checkout package to tsconfig

* Allow styling to be applied to number inputs and when value is 0

* Make style order consistent

* Remove inputProps to rely on rest in TextInput

* Add specific prop for the inputErrorComponent

* Only disallow active state if value is 0 AND type is number

* Change all uses of ValidatedTextInput to also pass inputErrorComponent

* Revert "Change all uses of ValidatedTextInput to also pass inputErrorComponent"

This reverts commit ec734b99c20c4d29fcf778714246fc406ee37eaf.

* Revert "Remove inputProps to rely on rest in TextInput"

This reverts commit 1fc64cca4002206423d1fa443ff2d60130ba1ea0.

* Revert "Revert "Change all uses of ValidatedTextInput to also pass inputErrorComponent""

This reverts commit 110e3606a996668be5a32698b634b7706d16cddc.

* Revert "Revert "Remove inputProps to rely on rest in TextInput""

This reverts commit aeb03526c44b3fcc97a719a18930d08157a80baf.

* Don't pass errorMessage to ValidatedTextInput
2021-05-20 17:56:56 +01:00
Mike Jolley 1ad39d6eac Create LICENSE (https://github.com/woocommerce/woocommerce-blocks/pull/4235) 2021-05-20 15:07:12 +01:00
Albert Juhé Lluveras c94187e450 Update @woocommerce/components (https://github.com/woocommerce/woocommerce-blocks/pull/4100)
* Add isCompact prop to components using SearchListControl

* Update @woocommerce/components to 6.1.2

* Remove legacy CSS code

* Add some CSS rules to override conflicting editor styles

* Replace showCount prop with has-count class name

* Create ExpandableSearchListItem component

* Refactor ProductControl so it uses ExpandableSearchListItem

* Update @woocommerce/components to 6.2.0

* Fix @woocommerce/components builds breaking

* Fix a11y of expandable item list children

* Set categories to an empty array by default

* Render compact control in Attribute filter sidebar

* Add countLabel to ProductAttributeTermControl

* Fix ProductTagControl selected items

* Use sentence case for countLabel

* Fix wrong margins in block editor

* Fix checkbox alignment

* Update package-lock.json

* Fix withCategories test

* Fix JS error in Filter Products by Attribute block

* Make input ids unique
2021-05-20 10:58:59 +02:00
Thomas Roberts 26a84cedde Convert TextInput and ValidatedTextInput to TypeScript (https://github.com/woocommerce/woocommerce-blocks/pull/4226)
* Change index file from base/context to .ts

This is to stop TS complaining when importing things from here.

* Convert ValidatedTextInput to TypeScript

* Convert TextInput to TypeScript

* Ensure Label accepts correct HTML Attributes Props

* Remove PropTypes from TextInput and ValidatedTextInput

No longer needed because of TypeScript

* Use correct error id to show validation message

* Use HTMLElement instead of a specific element type for LabelProps

* Update assets/js/base/components/text-input/validated-text-input.tsx

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>

* Update assets/js/base/components/text-input/validated-text-input.tsx

* Use correct formatting in ValidatedTextInput

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-05-19 10:55:15 +01:00
renovate[bot] 5d595de6f5 Update dependency @testing-library/react-hooks to v5.1.3 (https://github.com/woocommerce/woocommerce-blocks/pull/4233)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-19 07:36:46 +00:00
renovate[bot] f99b95c2bf Update dependency @types/lodash to v4.14.169 (https://github.com/woocommerce/woocommerce-blocks/pull/4234)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-19 04:36:44 +00:00
renovate[bot] d621f0aff8 Update dependency @testing-library/react to v11.2.7 (https://github.com/woocommerce/woocommerce-blocks/pull/4232)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-19 03:46:21 +00:00
renovate[bot] dbcc0c80f2 Update dependency @stripe/react-stripe-js to v1.4.1 (https://github.com/woocommerce/woocommerce-blocks/pull/4231)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-19 02:48:45 +00:00
renovate[bot] 69343e478e Pin dependency @types/wordpress__deprecated to 2.4.2 (https://github.com/woocommerce/woocommerce-blocks/pull/4229)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-19 01:32:34 +00:00
Raluca Stan 092a28848c Fix e2e checkout tests and adjust jest setup (https://github.com/woocommerce/woocommerce-blocks/pull/4216)
* Fix checkout test
- make tests independent & test also for empty cart case
- make sure the Order summary is expanded with a better selector
* Remove unnecessary localStorage operations from tests
* Go to cart page before removing an item from cart
* Remove logging observing before tests
This removes unnecessary console.log interception. A big part of the logic was done for Puppeteer 1.6.1, but since 3.0.0 message.text() returns string. We allow console.error messages to surface in our tests. Although they don't cause the test to fail it might be a good addition for debugging purposes.
2021-05-18 15:09:30 +02:00
renovate[bot] 0f3c601f34 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4212)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-18 11:27:27 +01:00
Mike Jolley c123dfdeba Convert checkout state context provider to Typescript (https://github.com/woocommerce/woocommerce-blocks/pull/4200)
* git move to ts files

* Type the checkout state provider

* Restore for loop for error handling

* Types not needed

* Consolodate response handling

* Unused import

* Fix defaults for onCheckoutAfterProcessingWithSuccess etc

* Type useEmitResponse and remove isObject checks

* useEmitResponse as const

* Check that redirectUrl is string

* Define actions as const

* data.redirectUrl should be truthy

* Add redirectURL todo item as followup

* remove null fallback
2021-05-18 10:37:31 +01:00
Thomas Roberts 983ce48cad Move Button and Label components to `@woocommerce/blocks-checkout` package (https://github.com/woocommerce/woocommerce-blocks/pull/4222)
* Move Button to checkout package

* Move Label to Components Package
2021-05-18 09:10:31 +01:00
Thomas Roberts 57c5b0c532 Update design of cart and checkout sidebars (https://github.com/woocommerce/woocommerce-blocks/pull/4180)
* Update cart/coupon/shipping design

* Add order summary heading

* Move and style discounts on checkout sidebar

* Add rate to tax lines

* Ensure the option to display taxes itemised is available to Cart block

* Output individual tax items below the total & add styles for this

* Add success notice under coupon input on successful coupon addition

* Add border to bottom of Totals footer

* Show success message when adding coupon

* Add padding to cart item rows

* Add preview data to cart for when taxes are enabled

* Add rate to cart response type

* Add showRateAfterTaxName attribute to Cart block

* Add control to cart block to show rate percentage after rate name

* Add rate % in cart totals only if option is toggled on

* Pass showRateAfterTaxName attribute down to TotalsTaxes

* Add showRateAfterTaxName to Checkout block

* Add control to block editor for showRateAfterTaxName on Checkout

* Pass showRateAfterTaxName down to TotalsTaxes in Checkout

* Change label for showing tax rates in cart and checkout blocks

* Add test to ensure Taxes section shows in Cart block

* Add tests for cart sidebar and rate percentages

* Remove order summary title from checkout sidebar

* Check if taxes are enabled before rendering the option to show rate %s

* Add ShippingVia component to show the selected rate in sidebar

* Remove value from individual tax rates

* Remove bold from Shipping via label

* Remove coupon added successfully message

* Ensure panel headings that are h2s are the same colour as others

* Clean up eslint warnings

* Show rate %s by default

* Update snapshots following design changes

Co-authored-by: Mike Jolley <mike.jolley@me.com>
2021-05-17 15:00:57 +01:00
Albert Juhé Lluveras b14b557c91 Don't default to fallback in getSetting if value is falsy (https://github.com/woocommerce/woocommerce-blocks/pull/4202) 2021-05-16 19:00:06 +01:00
Mike Jolley bcac811d7c Fix es lint warnings (https://github.com/woocommerce/woocommerce-blocks/pull/4206)
* Un-used PropTypes import

* Avoid global and use ownerDocument

* receiveCart return type

* ignoreRestSiblings when destructuring for @typescript-eslint/no-unused-vars

* Replace lodash find

* Use global rather than window

* Remove lodash map

* move rule to overrides
2021-05-16 18:59:32 +01:00
Raluca Stan 7deea0eee8 Fix cart and checkout frontend e2e tests (https://github.com/woocommerce/woocommerce-blocks/pull/4199)
* Wip: fix e2e fe tests

* Test that navigation ends

* Fix waitForNavigation

* comment out failing php test

* click the dom element

* Ensure navigation happens by waiting for it. Test page title.

* remove skip and update docs

* Revert "comment out failing php test"

This reverts commit 7c40e8caf3aa32e35e3b70eb32051251b06e0613.

* Fix USD from merge conflict

* Add missing check for page title

* Try page.waitForFunction for text search

* test to see checkout page title is correct

* test checkout page url on CI

* unde jest config change

* Fix assertion for checkout page

* remove extra localStorage item remove call

Co-authored-by: Mike Jolley <mike.jolley@me.com>
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
2021-05-16 18:41:34 +01:00
Mike Jolley d1f55724e6 Set order status to pending when no payment is needed (https://github.com/woocommerce/woocommerce-blocks/pull/4186) 2021-05-13 11:49:39 +01:00
Mike Jolley 286d52befb Remove the need for the `canMakePayment` callback in the editor context (https://github.com/woocommerce/woocommerce-blocks/pull/4188)
* Force can pay true in editor context

* Update docs
2021-05-13 11:21:21 +01:00
Mike Jolley 87bb095f1f Sync customer data during checkout with draft orders. (https://github.com/woocommerce/woocommerce-blocks/pull/4197)
* Update store when email changes

* Add pluckEmail helper and convert to TS

* improve guard

* sync draft order with customer data
2021-05-13 11:20:37 +01:00
Albert Juhé Lluveras 792f0671af Set default store currency to USD in tests (https://github.com/woocommerce/woocommerce-blocks/pull/4203) 2021-05-13 12:14:15 +02:00
renovate[bot] c2a07c7a9d Update dependency config to v3.3.6 (https://github.com/woocommerce/woocommerce-blocks/pull/4195)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-13 10:16:04 +02:00
renovate[bot] a071edfd92 Update dependency cssnano to v4.1.11 (https://github.com/woocommerce/woocommerce-blocks/pull/4196)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-13 10:15:35 +02:00
Seghir Nadir 0c42322dba Add cart data to filters (https://github.com/woocommerce/woocommerce-blocks/pull/4164)
* add cart data to filters

* add extensions back to footer filter
2021-05-12 13:32:05 +01:00
renovate[bot] 730d7fa82b Pin dependency lodash to 4.17.21 (https://github.com/woocommerce/woocommerce-blocks/pull/4193)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-12 13:04:44 +01:00
renovate[bot] adcaaa2352 Update dependency chalk to v4.1.1 (https://github.com/woocommerce/woocommerce-blocks/pull/4194)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-12 13:04:13 +01:00
Mike Jolley a90988aebf Should be using value rather than name (https://github.com/woocommerce/woocommerce-blocks/pull/4187) 2021-05-12 13:02:26 +01:00
Thomas Roberts 1dcbddc0bd Add checkout filter for coupon names (https://github.com/woocommerce/woocommerce-blocks/pull/4166)
* Make extensions optional, not all filters will need to pass this through

For example the CartCouponSchema has no option for extensibility (and I don't think it's needed at any rate) so extensions will always be an empty object. Rather than explicitly specifying this when running the filter, we can let it default to an empty object.

* Add filter for coupon code
2021-05-11 13:57:02 +01:00
Thomas Roberts f97ee971af Check if variation data is iterable before formatting (https://github.com/woocommerce/woocommerce-blocks/pull/4182) 2021-05-11 11:45:02 +01:00
Darren Ethier 523f49d3b1 update package-lock (version change mostly) 2021-05-10 11:21:01 -04:00
Darren Ethier fb70016d45 update version string to dev version 2021-05-10 11:16:58 -04:00
github-actions[bot] e3568aa275 Release: 5.1.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4185)
* Empty commit for release pull request

* Add changelog

* update testing notes

* Bumping version strings to new version.

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
2021-05-10 11:14:05 -04:00
renovate[bot] a4c2f2e7ae Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4184)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-10 14:38:04 +02:00
Thomas Roberts 6ffa778729 Convert shipping components to typescript (https://github.com/woocommerce/woocommerce-blocks/pull/4135)
* Add type defs for customer

Taken from 194ecccf78/assets/js/type-defs/customer.ts

* Convert ShippingCalculatorAddress to TypeScript

* Convert ShippingCalculator to TypeScript

* Convert ShippingLocation to TypeScript

* Allow packageId to be a number or string in useSelectShippingRate(s)

* Convert ShippingRatesControl to TypeScript

* Convert ShippingOptionsStep to TypeScript

* Allow package_id to be a string or number

This is because of Subscriptions using strings for package IDs

* Change to use CartShippingRateItemShippingRate instead of Rate

* Add extra props to PackageProps type

* Make ShippingAddress have the correct type

* Use CartShippingRateItemShippingRate instead of Rate

* Remove Rate type

* Set return types to JSX.Element

* Change type of props.renderOption in ShippingRatesControl

* Remove customer type defs and relocate aliases to default-address-fields

* Add EnteredAddress type

* Import EnteredAddress from new location

* Remove unnecessary eslint ignore

* Remove unused variable

* Remove confusing use of word Item in Shipping types

* Remove confusing use of word Item in Shipping types
2021-05-10 10:03:30 +01:00
Albert Juhé Lluveras a25eba0232 Feature gate PaymentApi (https://github.com/woocommerce/woocommerce-blocks/pull/4176)
* Feature gate PaymentApi

* Improve payment method missing dependencies error message so it's clear it only affects blocks

* Add PaymentApi feature flags to list of feature flags in docs
2021-05-10 10:00:14 +02:00
Darren Ethier c85654f579 Improvements to `emitEventWithAbort`. (https://github.com/woocommerce/woocommerce-blocks/pull/4158)
* modify emitEventWithAbort to change return value

`emitEventWithAbort` now returns an array of responses up to the first response that triggered an error or fail response instead of aborting on success responses too.

* update add to cart form context provider

* update checkout state context provider

* update payment method data context provider

* update tests and fix thrown error handling.
2021-05-07 16:39:28 -04:00
Raluca Stan 269341acc4 Add lodash as a devDependency (https://github.com/woocommerce/woocommerce-blocks/pull/4179) 2021-05-07 15:50:55 +02:00
Seghir Nadir 037dc09f62 Don't clear email and phone fields when using separate billing address. (https://github.com/woocommerce/woocommerce-blocks/pull/4162)
* preseve-billing-data

* pluck empty email and phone

* add issue number
2021-05-05 12:59:30 +01:00
Raluca Stan b9db5d4c51 Fix/cart backend test (https://github.com/woocommerce/woocommerce-blocks/pull/4153)
* Fix backend cart e2e test

* Adjust test structure

* Fix e2e checkout backend test.

Make sure the confirmation window is closed
2021-05-05 12:52:27 +01:00
renovate[bot] 07abd0f0b8 Update dependency @stripe/stripe-js to v1.14.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4170)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-05 10:08:45 +00:00
Thomas Roberts 57b4215bce Add documentation for filters (https://github.com/woocommerce/woocommerce-blocks/pull/4167)
* Rename the argument in the CheckoutFilterFunction type

This only exists as an extra descriptive hint to anyone using this type, the value `label` was never used by anything so it does not need to be changed anywhere else.

* Create Available Filters document

* Add available filters to the extensibility README

* Update docs/extensibility/available-filters.md to fix typographical error

Co-authored-by: Mike Jolley <mike.jolley@me.com>

Co-authored-by: Mike Jolley <mike.jolley@me.com>
2021-05-05 10:41:48 +01:00
renovate[bot] 7a53dd1f27 Update dependency @woocommerce/e2e-utils to v0.1.4 (https://github.com/woocommerce/woocommerce-blocks/pull/4172)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-05 08:10:24 +00:00
renovate[bot] 1cabe4b614 Update dependency @types/react to v16.14.6 (https://github.com/woocommerce/woocommerce-blocks/pull/4171)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-05 03:31:52 +00:00
renovate[bot] 0255e27bb0 Update babel monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/4169)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-05 02:23:13 +00:00
renovate[bot] 599814cf43 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4163)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-04 14:07:05 +01:00
Mike Jolley 2b6952151e 5.1.0-dev 2021-04-28 17:21:36 +01:00
github-actions[bot] 6614876baa Release: 5.0.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4144)
* Empty commit for release pull request

* Changelog

* Testing instructions

* cast correct value of setting

* fix typo

* add zip

* /tsconfig.base export-ignore

* update image

* Bumping version strings to new version.

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Mike Jolley <mike.jolley@me.com>
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
2021-04-28 17:15:39 +01:00
Seghir Nadir c5c3a87080 Change checkoutAllowsGuest to the correct value. (https://github.com/woocommerce/woocommerce-blocks/pull/4146)
* cast correct value of setting

* fix typo
2021-04-28 16:01:24 +01:00
Mike Jolley 39f9ef2183 Add inline console warning if shared settings hook is consumed (https://github.com/woocommerce/woocommerce-blocks/pull/4143)
* Add inline console warning if shared settings hook is consumed

* remove localisation on console string
2021-04-28 13:09:41 +01:00
renovate[bot] 2ba92e566d Update dependency @types/jest to v26.0.23 (https://github.com/woocommerce/woocommerce-blocks/pull/4142)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-28 05:36:23 +00:00
renovate[bot] d51c50b98e Update dependency @testing-library/react-hooks to v5.1.2 (https://github.com/woocommerce/woocommerce-blocks/pull/4141)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-28 04:07:10 +00:00
renovate[bot] b95e2ecf10 Pin dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/4139)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-28 02:58:03 +00:00
renovate[bot] b14d16bd98 Update dependency @testing-library/jest-dom to v5.12.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4140)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-28 01:59:52 +00:00
Thomas Roberts 803ed0a0bd Convert Product summary to TypeScript (https://github.com/woocommerce/woocommerce-blocks/pull/4099)
* Add WordCountType type

* Convert Summary to TypeScript

* Convert ProductSummary to TypeScript
2021-04-27 17:39:20 +01:00
renovate[bot] 4cea6ccb2b Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4073)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-27 16:55:12 +01:00
renovate[bot] 409fc79d75 Update dependency autoprefixer to v10.2.5 (https://github.com/woocommerce/woocommerce-blocks/pull/4064)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-27 11:45:59 +00:00
Albert Juhé Lluveras 7091bd7894 Remove work-around to load our stylesheets after wp-edit-post (https://github.com/woocommerce/woocommerce-blocks/pull/4097) 2021-04-27 11:17:43 +01:00
Mike Jolley 1166ff3a51 Switch to `rest_preload_api_request` for API hydration in cart and checkout blocks. (https://github.com/woocommerce/woocommerce-blocks/pull/4090)
* Introduce hydrate_api_request

* Consume preloadedApiRequests

* no need to set false here
2021-04-27 11:16:23 +01:00
renovate[bot] bd7cad31e8 Update dependency @testing-library/react to v11.2.6 (https://github.com/woocommerce/woocommerce-blocks/pull/4063)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-27 11:04:36 +01:00
Thomas Roberts e6c7f2b6c0 Check for element before trying to click it in cart backend test (https://github.com/woocommerce/woocommerce-blocks/pull/4087) 2021-04-27 09:39:31 +01:00
Thomas Roberts 583113e373 Remove woocommerce as a dependency and install @woocommerce/e2e-utils (https://github.com/woocommerce/woocommerce-blocks/pull/4078)
* Remove woocommerce as a dependency and install @woocommerce/e2e-utils

* Remove reference to woocommerce package from tsconfig and jest config
2021-04-26 16:31:30 +01:00
Raluca Stan 8ee5e816a0 Rename onCheckoutBeforeProcessing to onCheckoutValidationBeforeProcessing (https://github.com/woocommerce/woocommerce-blocks/pull/4039) 2021-04-26 17:27:22 +02:00
Thomas Roberts 10d11e0748 Convert Product components to TS (https://github.com/woocommerce/woocommerce-blocks/pull/4098)
* Update package-lock.json

* Move Block Type Settings into Block Type Classes (https://github.com/woocommerce/woocommerce-blocks/pull/4059)

* BLOCK SETTINGS: Remove unused constants/settings

* AssetDataRegistry: Helpers to check for settings that exist, and registering page ID/permalinks

* Move checkout and cart block settings to checkout and cart blocktypes

* Move isShippingCalculatorEnabled to cart block

* Remove HAS_DARK_EDITOR_STYLE_SUPPORT and IS_SHIPPING_CALCULATOR_ENABLED in favour of getSetting

* Move displayCartPricesIncludingTax to blocktypes, and implement getSetting

* Move block settings to core settings and blocktypes

* Fix namespace usage

* Move review settings

* move tag settings

* Keep productCount in core data

* Move min and default height

* Improve storePages code

* Move attributes to attribute filter block type

* Move $word_count_type outside of settings array

* Remove unneeded setting in preview data (shippingCostRequiresAddress)

* Move min/max settings dependency from GridLayoutControl to Blocks themselves and use getSettings

* DEFAULT_COLUMNS and ROWS to settings

* Move product columns/rows to block types

* Add grid settings to AllProducts block

* Correct default rows

* correct min rows default

* Move hasDarkEditorStyleSupport

* Move hideOutOfStockItems to block type settings

* Move build settings to inline script dependency

* Pass data through asset api and move restApiRoutes

* Export all core settings as constants

* Remove WORD_COUNT_TYPE from core settings

* Move some other core settings to assets

* Update constants

* Make settings use TypeScript

* Update CURRENT_USER_IS_ADMIN usage

* WORD_COUNT_TYPE

* REST_API_ROUTES

* REVIEW_RATINGS_ENABLED and SHOW_AVATARS

* Remove REVIEW_RATINGS_ENABLED and SHOW_AVATARS constants

* Remove MIN_HEIGHT

* Remove DEFAULT_HEIGHT

* PLACEHOLDER_IMG_SRC

* LIMIT_TAGS

* HAS_PRODUCTS

* HOME_URL

* HAS_TAGS

* COUPONS_ENABLED

* SHIPPING_ENABLED

* TAXES_ENABLED

* DISPLAY_ITEMIZED_TAXES

* SHIPPING_COST_REQUIRES_ADDRESS

* SHIPPING_STATES and SHIPPING_COUNTRIES

* STORE_PAGES

* ALLOWED_COUNTRIES

* ALLOWED_STATES

* SHIPPING_METHODS_EXIST

* PAYMENT_GATEWAY_SORT_ORDER

* CHECKOUT_SHOW_LOGIN_REMINDER

* CHECKOUT_ALLOWS_GUEST and CHECKOUT_ALLOWS_SIGNUP

* ATTRIBUTES

* DISPLAY_CART_PRICES_INCLUDING_TAX

* DISPLAY_CART_PRICES_INCLUDING_TAX

* update build for TS files

* fix build dir

* Move blocks build config params

* Move placeholderImgSrc to core settings

* Move rest api hydration hoc to shared hocs and provide it restApiRoutes directly to avoid asset data registration

* Move wordCountType to abstract block

* Remove WORD_COUNT_TYPE in favour of getSetting

* Move IS_LARGE_CATALOG and PRODUCT_COUNT to abstract block type and use getSetting inline

* Add wcBlocksConfig

* fix tests

* Remove unused $asset_data_registry

* remove console.log

* Move build settings to abstract block

* Trigger build again

* Move hydration back to regular hocs for compatibility with trunk (merge conflict)

* Removed wcSharedHocsConfig

* esc home url

* Update search fixture

* Update search snap

* 40000 timeout

* hasProducts -> productCount

* Product Count is part of blocks config

* update mocks

* Use version comparison to determine if batching is enabled

* Change isWpVersion

* scrollTo button

* Rename product backorder badge to tsx

* Rename Policies component to tsx

* Convert Product badge to TS

* Convert Product Details to TypeScript

* Convert ProductImage to TypeScript

* Convert ProductLowStockBadge to TypeScript

* Move ItemData into ProductResponse type def file

* Add type defs directory to tsconfig

* Import types for ProductResponseItemData in ProductDetails

* Convert ProductMetaData to TypeScript

* Convert ProductSaleBadge to TypeScript

* Type component props to their interfaces

* Ensure components have an explicit return type of JSX.Element set

* Export PLACEHOLDER_IMG_SRC as string

* Add null to component return type

* Import PLACEHOLDER_IMG_SRC from correct location

Co-authored-by: Mike Jolley <mike.jolley@me.com>
2021-04-26 13:20:30 +01:00
Thomas Roberts 5871d86d7f Update `Button` component to ts (https://github.com/woocommerce/woocommerce-blocks/pull/4091)
* Convert Button to TypeScript

* Add alias of @types/wordpress__components

* Make ButtonProps extend the wp/components button's base props

* Update package-lock.json

* Extend Button.ButtonProps instead of only BaseProps

* Add return type to Button component
2021-04-26 10:49:57 +01:00
Mike Jolley 114cdf3e98 Create AssetsController and BlockTypesController (replaces Assets.php and Library.php) (https://github.com/woocommerce/woocommerce-blocks/pull/4094)
* Removed deprecated register_block_script method

* Move assets class content to AssetsController

Co-Authored-By: Bartosz Budzanowski <17271089+budzanowski@users.noreply.github.com>

* Refactor Library into BlockTypesController

* Add new classes to bootstrap

* @since $VID:$

* Add deprecated Library and Assets classes

* Update comments

* final class

* Move redirect_to_field

Co-authored-by: Bartosz Budzanowski <17271089+budzanowski@users.noreply.github.com>
2021-04-26 10:37:10 +01:00
Mike Jolley a4cd850384 Deprecate the woocommerce_shared_settings hook (https://github.com/woocommerce/woocommerce-blocks/pull/4092)
* Deprecate the filter

* Prevent test from failing due to notices
2021-04-26 10:36:50 +01:00
renovate[bot] b0979d5955 Update ataylorme/eslint-annotate-action action to v1.2.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4062)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-23 16:56:36 +00:00
Thomas Roberts 558525aa6e Prevent unwanted parts of address being displayed (https://github.com/woocommerce/woocommerce-blocks/pull/4038)
* Add emptyHiddenAddressFields function

* Add tests for emptyHiddenAddressFields

* Remove address fields that should be hidden before processing checkout

* Empty hidden address fields before displaying in shipping calculator

* Refactor emptyHiddenAddressFields so we only iterate once

* Fix test for emptyHiddenAddressFields

* Import default address fields from @woocommerce/settings

* Import emptyHiddenAddressFields

* Copy address first before emptying fields

* Modify address directly instead of copying it

* Copy address variable instead of mutating it directly

* Add files to TS project

* Return the new address rather than the parameter

* Don't clean address fields in the presentation layer

* Clean address in useStoreCart before it gets sent to components
2021-04-23 10:42:36 +01:00
Thomas Roberts bc750438c2 Convert Cart Table to TypeScript (https://github.com/woocommerce/woocommerce-blocks/pull/4088)
* Convert CartLineItemsTitle to TypeScript

* Add type guards

* Change CartLineItemRow extension to .tsx

* Remove parseInt from price precision

This is because the API sends it as a number, so it will never be a string, so no need to parse it.

* Add dinero.js types

* Type QuantitySelector and add types for @wordpress/keycodes

* Make __experimentalApplyCheckoutFilter use generic types

* Add catalog_visibility type & change types of CartItem

* Add isNumber and isString to type guards

* Type ProductLowStockBadge

* Ensure type returned by a filter function is the same it received

* Include type guards and hooks in tsconfig

* Add more type safety to useStoreCartItemQuantity

* Make className optional on QuantitySelector

* Type CartLineItemRow

* Type CartLineItemsTable

* Type Cart

* Add extra keys to CartResponseItem

* Clean aria-hidden logic

* Export type-guards from module

* Use aliases to import types in CartLineItemRow

* Remove unused prop types and specify return type of function

* Specify return type of component

* Use JSX.Element instead of ReactNode

* Remove unused variables & set return type of components

* Remove PropTypes
2021-04-23 10:15:17 +01:00
Mike Jolley dbbb99d55e Move Block Type Settings into Block Type Classes (https://github.com/woocommerce/woocommerce-blocks/pull/4059)
* BLOCK SETTINGS: Remove unused constants/settings

* AssetDataRegistry: Helpers to check for settings that exist, and registering page ID/permalinks

* Move checkout and cart block settings to checkout and cart blocktypes

* Move isShippingCalculatorEnabled to cart block

* Remove HAS_DARK_EDITOR_STYLE_SUPPORT and IS_SHIPPING_CALCULATOR_ENABLED in favour of getSetting

* Move displayCartPricesIncludingTax to blocktypes, and implement getSetting

* Move block settings to core settings and blocktypes

* Fix namespace usage

* Move review settings

* move tag settings

* Keep productCount in core data

* Move min and default height

* Improve storePages code

* Move attributes to attribute filter block type

* Move $word_count_type outside of settings array

* Remove unneeded setting in preview data (shippingCostRequiresAddress)

* Move min/max settings dependency from GridLayoutControl to Blocks themselves and use getSettings

* DEFAULT_COLUMNS and ROWS to settings

* Move product columns/rows to block types

* Add grid settings to AllProducts block

* Correct default rows

* correct min rows default

* Move hasDarkEditorStyleSupport

* Move hideOutOfStockItems to block type settings

* Move build settings to inline script dependency

* Pass data through asset api and move restApiRoutes

* Export all core settings as constants

* Remove WORD_COUNT_TYPE from core settings

* Move some other core settings to assets

* Update constants

* Make settings use TypeScript

* Update CURRENT_USER_IS_ADMIN usage

* WORD_COUNT_TYPE

* REST_API_ROUTES

* REVIEW_RATINGS_ENABLED and SHOW_AVATARS

* Remove REVIEW_RATINGS_ENABLED and SHOW_AVATARS constants

* Remove MIN_HEIGHT

* Remove DEFAULT_HEIGHT

* PLACEHOLDER_IMG_SRC

* LIMIT_TAGS

* HAS_PRODUCTS

* HOME_URL

* HAS_TAGS

* COUPONS_ENABLED

* SHIPPING_ENABLED

* TAXES_ENABLED

* DISPLAY_ITEMIZED_TAXES

* SHIPPING_COST_REQUIRES_ADDRESS

* SHIPPING_STATES and SHIPPING_COUNTRIES

* STORE_PAGES

* ALLOWED_COUNTRIES

* ALLOWED_STATES

* SHIPPING_METHODS_EXIST

* PAYMENT_GATEWAY_SORT_ORDER

* CHECKOUT_SHOW_LOGIN_REMINDER

* CHECKOUT_ALLOWS_GUEST and CHECKOUT_ALLOWS_SIGNUP

* ATTRIBUTES

* DISPLAY_CART_PRICES_INCLUDING_TAX

* DISPLAY_CART_PRICES_INCLUDING_TAX

* update build for TS files

* fix build dir

* Move blocks build config params

* Move placeholderImgSrc to core settings

* Move rest api hydration hoc to shared hocs and provide it restApiRoutes directly to avoid asset data registration

* Move wordCountType to abstract block

* Remove WORD_COUNT_TYPE in favour of getSetting

* Move IS_LARGE_CATALOG and PRODUCT_COUNT to abstract block type and use getSetting inline

* Add wcBlocksConfig

* fix tests

* Remove unused $asset_data_registry

* remove console.log

* Move build settings to abstract block

* Trigger build again

* Move hydration back to regular hocs for compatibility with trunk (merge conflict)

* Removed wcSharedHocsConfig

* esc home url

* Update search fixture

* Update search snap

* 40000 timeout

* hasProducts -> productCount

* Product Count is part of blocks config

* update mocks

* Use version comparison to determine if batching is enabled

* Change isWpVersion

* scrollTo button
2021-04-22 12:37:27 +01:00
renovate[bot] 013f6a926b Update dependency postcss to v8.2.10 (https://github.com/woocommerce/woocommerce-blocks/pull/4084)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-21 20:01:20 +00:00
Mike Jolley 325677ce58 Update GA integration testing steps 2021-04-21 16:05:34 +01:00
renovate[bot] ca6525aeba Update dependency postcss-loader to v4.2.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4086)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-21 13:24:11 +00:00
Thomas Roberts f6220c434c Make error messages in front-end cart E2E tests better (https://github.com/woocommerce/woocommerce-blocks/pull/4077)
* Wrap waitForFunction calls in try catch to better explain why test fails

* Change to .catch and make error message better

* Remove jest.setTimeout
2021-04-21 11:51:10 +01:00
Thomas Roberts 11528812a2 Add When to employ end to end (E2E) testing documentation (https://github.com/woocommerce/woocommerce-blocks/pull/4079)
* Add When to employ end to end (E2E) testing doc

* Add links to documentation for RTL and puppeteer

* Update docs/testing/when-to-employ-e2e-testing.md

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>

* Update when-to-employ-e2e-testing.md

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-04-21 10:13:56 +01:00
renovate[bot] fbf89823fe Update babel monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/4085)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-21 04:54:40 +00:00
renovate[bot] b1357f79d0 Pin dependency dataloader to 2.0.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4083)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-21 02:48:01 +00:00
Mike Jolley 171642b8a5 Rest API batching support (2) (https://github.com/woocommerce/woocommerce-blocks/pull/4075)
* Add batch route

* Register batch route

* Allow batching on writable endpoints

* Batch in client

* Batch non-GET requests

* Batching support with typescript defs

* Remove unused hook

* Prevent multiple fragment updates

* Only use batch route if detected

* Correct var name

* Move nonce check to validate_callback so it runs before requests are completed

* remove unused imports

* updateCartFragments function as const

* Add phpunit tests for batching functionality

* Reduce batch delay

* increase timeout

* Update isCartUpdatePostRequest for batch support

* Update Endpoint used in test

* Move nonce check back inline - custom headers are not returned otherwise

* Fix error handling

* Back to 30s

* Update assets/js/middleware/cart-update.ts

Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>

* whitespace

Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
2021-04-20 16:44:49 +01:00
renovate[bot] 5e08220682 Update Node.js to v12.22.1 (https://github.com/woocommerce/woocommerce-blocks/pull/4040)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-20 12:55:54 +00:00
renovate[bot] 585861a2dc Pin dependency circular-dependency-plugin to 5.2.2 (https://github.com/woocommerce/woocommerce-blocks/pull/4061)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-18 21:29:11 +00:00
Darren Ethier 7b4e77a284 Update @wordpress/env to 4.0.2 and test default config with core property set to null. (https://github.com/woocommerce/woocommerce-blocks/pull/4071)
* update @wordpress/env to 4.0.2

* switch `core` to null for the default wp-env config

* remove DT types for @wordpress/api-fetch and install actual api-fetch package as a dev dependency.

The actual package now has types which are more up to date so it’s better to use it for the types than what’s in Definitely Typed.
2021-04-18 12:57:23 -04:00
Darren Ethier 309b3614c5 Revert "Rest API batching support (https://github.com/woocommerce/woocommerce-blocks/pull/3899)"
This reverts commit 5b65a02297.

This commit broke cart updates for the cart block (surfaced with changing quantity)

There were also legit e2e test fails for the cart-update middleware behaviour that weren’t addressed.
2021-04-18 11:58:51 -04:00
Nadir Seghir ab142f5b53 bring back changes from 4.9.1 2021-04-18 16:54:43 +01:00
Nadir Seghir c8f2aedd1b Revert "Merge branch 'release/4.9.0' into trunk"
This reverts commit f79b960b59, reversing
changes made to 5b65a02297.
2021-04-18 16:33:08 +01:00
Nadir Seghir f79b960b59 Merge branch 'release/4.9.0' into trunk 2021-04-18 16:13:58 +01:00
github-actions[bot] 6905cf0e62 Release: 4.9.1 (https://github.com/woocommerce/woocommerce-blocks/pull/4058)
* Check if Cart and Checkout are registered before removing payment methods so it won't break Elementor (https://github.com/woocommerce/woocommerce-blocks/pull/4056)

* Empty commit for release pull request

* update versions and add testing file

* add download file

* Bumping version strings to new version.

Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
2021-04-18 15:56:34 +01:00
Mike Jolley 5b65a02297 Rest API batching support (https://github.com/woocommerce/woocommerce-blocks/pull/3899)
* Add batch route

* Register batch route

* Allow batching on writable endpoints

* Batch in client

* Batch non-GET requests

* Batching support with typescript defs

* Remove unused hook

* Prevent multiple fragment updates

* Only use batch route if detected

* Correct var name

* Move nonce check to validate_callback so it runs before requests are completed

* remove unused imports

* updateCartFragments function as const

* Add phpunit tests for batching functionality

* Reduce batch delay

* increase timeout
2021-04-16 13:45:56 +01:00
Thomas Roberts d057618b24 Fix failing e2e tests (https://github.com/woocommerce/woocommerce-blocks/pull/4068)
* Remove unused fixtures

* Update package-lock.json

* Update product-search fixture and snapshot

* Ensure the product is selected before continuing with the test.

This clicks the test at least once, or at most thrice to ensure it is checked before trying to evaluate the rest of the test.

* Revert "Remove unused fixtures"

This reverts commit e4a4e11b72c6723341d60391bd9cb9cc4197efaf.

* Look for button with aria-label: 'Toggle block inserter'

* Revert "Look for button with aria-label: 'Toggle block inserter'"

This reverts commit a25ea8d9abafead372ef24b2feb92ff58bd95cea.

* Update @wordpress/e2e-test-utils to 5.1.2

* Check for existence of add block button
2021-04-16 11:48:27 +01:00
Raluca Stan c141f37f25 Update the initial checklist for the release md (https://github.com/woocommerce/woocommerce-blocks/pull/4067) 2021-04-15 17:22:03 +01:00
Albert Juhé Lluveras 5e0c4cf0ce Add initial e2e tests to Checkout block frontend (https://github.com/woocommerce/woocommerce-blocks/pull/4004)
* Add initial e2e tests to Checkout block frontend

* Fix comment format

* Scroll to payment methods before checking if they are clickable

* Typos

* Implement caching in getBlockPagePermalink to improve e2e test performance

* Revert "Typos"

This reverts commit 1b544276056084f73d5bcdfa391d5438590e4782.

* Simplify product price definitions

* Move scrollTo function to utils
2021-04-14 15:50:27 +01:00
Seghir Nadir 54785ada90 Check if Cart and Checkout are registered before removing payment methods so it won't break Elementor (https://github.com/woocommerce/woocommerce-blocks/pull/4056) 2021-04-13 14:27:05 +01:00
Albert Juhé Lluveras 80afb33eb6 Update version to 5.0.0-dev 2021-04-12 15:31:49 +02:00
github-actions[bot] 13f297843e Release: 4.9.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4053)
* Empty commit for release pull request

* Update changelog

* Add testing steps

* Update 4.9.0 testing steps

* Bumping version strings to new version.

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-04-12 15:29:41 +02:00
Albert Juhé Lluveras cbaabccbca Bumping version strings to new version. 2021-04-12 15:20:46 +02:00
Mike Jolley 40834e86df Remove BackCompatAssetDataRegistry (https://github.com/woocommerce/woocommerce-blocks/pull/4054) 2021-04-12 14:17:20 +01:00
Albert Juhé Lluveras d1e78f3d49 Update 4.9.0 testing steps 2021-04-12 14:45:00 +02:00
Albert Juhé Lluveras f7b30700c6 Add testing steps 2021-04-12 12:51:35 +02:00
Albert Juhé Lluveras 71cfe52731 Update changelog 2021-04-12 12:18:59 +02:00
Seghir Nadir 7c06674bbc Load translation file for JS files (https://github.com/woocommerce/woocommerce-blocks/pull/4050) 2021-04-12 12:05:26 +02:00
Mike Jolley 7556d47b5c Fix TwentyX styling issues for cart/checkout form fields (https://github.com/woocommerce/woocommerce-blocks/pull/4046)
* Fix checkbox styling in 2020 and 2017 themes by setting input font size

* 2017 button hover style fixes

* Fix editor dark inputs

* Restore dark color
2021-04-12 12:03:36 +02:00
renovate[bot] 4703f5b5fa Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4052)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-12 10:46:47 +01:00
Albert Juhé Lluveras 79f4fccbd5 Use font color in payment methods border (https://github.com/woocommerce/woocommerce-blocks/pull/4051) 2021-04-09 17:19:32 +02:00
Thomas Roberts 98687d48d0 Add word-break: break-word to components title (https://github.com/woocommerce/woocommerce-blocks/pull/4049) 2021-04-09 16:01:34 +01:00
Seghir Nadir e668fbf1b6 provide fallback for extensions when store didn't load yet (https://github.com/woocommerce/woocommerce-blocks/pull/4033) 2021-04-09 15:56:11 +01:00
renovate[bot] f1d0458b54 Update dependency @types/react to v16.14.5 (https://github.com/woocommerce/woocommerce-blocks/pull/4043)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-09 15:52:39 +01:00
renovate[bot] 3e2cc4c8da Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4035)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-09 15:39:33 +01:00
Darren Ethier 52a16542fb Add note about including changelog for WooCommerce Core package updates for patch releases. 2021-04-08 13:29:03 -04:00
Darren Ethier cc9f94908a Update release-initial-checklist.md
Add note about including changelog in package bump for WooCommerce Core updates.
2021-04-08 13:27:39 -04:00
Seghir Nadir cda0252d12 unqeueue scripts (https://github.com/woocommerce/woocommerce-blocks/pull/4034) 2021-04-08 13:44:17 +01:00
Mike Jolley 25544f3ce4 Remove deprecated shortcode save handling from SSR Blocks (https://github.com/woocommerce/woocommerce-blocks/pull/4010) 2021-04-08 13:42:03 +01:00
Mike Jolley 9bdcbe0b4d Fix Circular Dependencies During Builds (https://github.com/woocommerce/woocommerce-blocks/pull/4025)
* Fix circular dependencies in Icons package

* CircularDependencyPlugin

* Fix deriveSelectedShippingRates CD

* Move useStoreNotices to context/hooks

* Move useStoreCart to base/context/hooks

* Move useStoreEvents to base/context/hooks

* Move collection/product hooks

* Move useStoreAddToCart

* Move useCustomerData

* move shipping hooks

* Move checkout and payment hooks

* Context should import hooks with relative paths

* Prevent circular dependency in store notices container components

* Move address fields to settings so they are shared

* Import PaymentMethod components direct

* relative import

* Fix select CD

* Move ValidationInputError

* Move components consumed by context

* Fix up internal imports in context

* fix CD in checkout package

* Separate providers

* Fixing context exports

* Fix base context hook import

* fix mocks

* Pass hooks to Slot Fills as Fill Props to avoid imports from base-context

* Export components, not hooks

* Pass props to ExperimentalOrderMeta

* Run CD plugin when using `npm start` only

* Rename CIRCULAR_DEPS to CHECK_CIRCULAR_DEPS

* Remove duplicate key from rebase

* Move packages component back to main file

* Remove dashicon module replacement

* Restore SVG import from package not external

* Move core locale handling to avoid impact settings package size

* Remove deleted file from rebase
2021-04-08 13:31:12 +01:00
Michael P. Pfeiffer 4ea7a8d138 Cart: fix headline alignment in empty cart (https://github.com/woocommerce/woocommerce-blocks/pull/4044) 2021-04-08 08:48:59 +02:00
Albert Juhé Lluveras 24b01bb81e Remove useCheckoutRedirectUrl() (https://github.com/woocommerce/woocommerce-blocks/pull/4032) 2021-04-07 18:11:39 +02:00
renovate[bot] cb3b26def1 Update dependency @testing-library/jest-dom to v5.11.10 (https://github.com/woocommerce/woocommerce-blocks/pull/4042)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-07 02:55:45 +00:00
renovate[bot] 405a4ec1ee Update babel monorepo to v7.13.14 (https://github.com/woocommerce/woocommerce-blocks/pull/4041)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-07 00:56:42 +00:00
Albert Juhé Lluveras 7ac2fb3ec7 Add emitResponse prop to the Payment Method Nodes props docs (https://github.com/woocommerce/woocommerce-blocks/pull/3999)
* Typo

* Add emitResponse prop in the Payment Method Nodes props docs
2021-04-06 18:07:55 +02:00
Albert Juhé Lluveras 7744af9818 Update @woocommerce/components 2021-04-06 15:30:01 +02:00
Mike Jolley f67d25ffbd Add KSES before formatting content and for other HTML content (https://github.com/woocommerce/woocommerce-blocks/pull/2)
* Apply kses before wc_format_content

* Add kses to price HTML strings

* KSES in product grid

* kses in featured product

* Switch short description filter to wc_format_content in featured product block
2021-04-06 15:27:36 +02:00
Mike Jolley 8f78528245 Enable Google Analytics Integration (https://github.com/woocommerce/woocommerce-blocks/pull/4020)
* Remove experimental flag

* Add experimental docs
2021-04-06 12:59:31 +01:00
Thomas Roberts 6014a3d046 Update @automattic/data-stores and remove mapped-types.ts (https://github.com/woocommerce/woocommerce-blocks/pull/4024)
* Update @automattic/data-stores to 2.0.1 and remove mapped-types.ts

* Update exported types of CartAction
2021-04-06 12:15:14 +01:00
Albert Juhé Lluveras f22ab7f4f4 Fix Featured Product and Featured Category button alignment (https://github.com/woocommerce/woocommerce-blocks/pull/4028) 2021-04-06 08:16:55 +02:00
Raluca Stan 8d68dceacb Update to 4.9.0-dev version 2021-04-01 12:13:18 +01:00
github-actions[bot] 65fae9a44c Release: 4.8.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4018)
Create testing instructions for 4.8.0 realease

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Raluca Stan <ralucastn@gmail.com>
2021-04-01 11:55:08 +01:00
Albert Juhé Lluveras 9e5b5041b8 Update experimental flags documentation (https://github.com/woocommerce/woocommerce-blocks/pull/4017) 2021-04-01 11:34:09 +02:00
Mike Jolley 86e54c19a0 Add Google Analytics Product Block and Checkout Events (https://github.com/woocommerce/woocommerce-blocks/pull/3967)
* Move PHP GA code to service class

* product search tracking

* Improve inline script handling

* trackViewProduct

* Product link events

* Rename events

* Add checkout specific event hook

* Prevent useStoreCart response changing on rerender

* Move address step into form so progress can be more easily tracked

* Checkout progress events

* Checkout events

* Tidy up tracking code

* Track error exceptions

* add_payment_info event

* remove console log

* Track product grid block views Closes woocommerce/woocommerce-blocks#3959

* Checkout context was unused

* Add comments to checkout events

* correct step number

* Standardize prefixes for events

* Tracking requires GA extension

* Fix select content events

* adjust product list render tracking so it's inline

* Inline search event handling

* remove render callback hook

* revert render callback changes

* Update GA bootstrap code
2021-03-31 15:22:27 +01:00
renovate[bot] 40c569d9ef Update dependency @stripe/stripe-js to v1.13.2 (https://github.com/woocommerce/woocommerce-blocks/pull/3995)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-31 16:07:35 +02:00
Raluca Stan 853a05c77c Fix click on Proceed to checkout bug when Coupon error is visible. (https://github.com/woocommerce/woocommerce-blocks/pull/3996)
* Fix click on Proceed to checkout bug when Coupon error is visible.

The bug happened because of the layout shift produced by the error message disappearance.
2021-03-31 10:50:00 +01:00
Mike Jolley 5e997628b5 Avoid get_billing and get_shipping method when updating the order (https://github.com/woocommerce/woocommerce-blocks/pull/4013) 2021-03-31 11:26:59 +02:00
renovate[bot] 3373219b2a Update dependency @testing-library/user-event to v12.8.3 (https://github.com/woocommerce/woocommerce-blocks/pull/4016)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-31 11:12:56 +02:00
renovate[bot] a0512be2bd Pin dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/4015)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-31 01:50:19 +00:00
renovate[bot] 51c188f059 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4007)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-29 15:15:55 +02:00
Thomas Roberts 00b20bdac7 Strip tags from exceptions that are converted from notices (https://github.com/woocommerce/woocommerce-blocks/pull/4005)
* Strip tags that are added to notices

* Add test to ensure HTML is stripped by convert_notices_to_exceptions

* Test function directly, rather than through validate_cart_items

* Apply correct formatting to tests/php/StoreApi/Utilities/NoticeHandler.php

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-03-29 10:51:12 +01:00
Darren Ethier 5db03aa52c Updating release pull request workflow
Trying a different way of adding a commit to allow for pr creation on release pull requests. This way reduces both the number of commits and requires no actual file changes.
2021-03-24 13:35:50 -04:00
Thomas Roberts 1a0b432669 Ensure cart changes remain after using back button to get back to the cart (https://github.com/woocommerce/woocommerce-blocks/pull/3960)
* Add cartUpdate middleware

* Include timestamp for when cart data was generated

* Add getCartFromApi action

* Check whether cart can be hydrated or needs to be fetched from API

* Add cartDataIsStale action and remove getCartFromApi action

* Add isCartDataStale selector

* Don't load cart until staleness check is complete

* Add comment to ease worry about locaStorage execution

* Correct doc block and fix typographical error

* Cater for lastCartUpdate or the timestamp being undefined

* Include @woocommerce/api and @woocommerce/e2e-utils

* Add getNormalPagePermalink test utility

This will allow us to get the permalink of a "normal" page, i.e. one that is not using the block editor.

* Add getBlockPagePermalink test utility

This will get the permalink for a page using the Block editor.

* Emit action to update cart staleness in all execution paths

* Add visitPostOfType function

This will allow us to visit the editor page for a post based on its name and post type.

* Add functions to get permalinks from editor pages

* Add front-end tests for cart

* Update package-lock.json

* Create local function to ensure the page permalink is visible

* Change functions for getting permalinks
They were often failing for unknown reasons, these _somehow_ make them more stable.

* Add logging for GitHub actions

* Add more logging for tests

* Add more logging for tests

* Add more logging for tests

* Wait for networkidle on back

* Remove logging except timestamp

* Wait for timestamp to be added to localStorage

* Split tests to make runs slightly shorter

* Wait for add to cart request before continuing test

* Fix formatting in cart.test.js

* Rename cartDataStale to setIsCartDataStale

* Create constant for localStorage timestamp name

* Rename cartDataIsStale to isCartDataStale

This is for consistency, the action to change this is called setIsCartDataStale - I think this reads better.

* Use cleaner logic when determining if the cart should render or fetch

* Change docblock for isCartDataStale selector

* Remove boolean cast from SET_IS_CART_DATA_STALE reducer

* Set longer timeouts for frontend cart tests

* Enclose cart staleness checks in condition/prevent unnecessary execution

* Remove unnecessary boolean cast from selector

* Use constant for local storage key in tests

* Use new localstorage key in tests. cant access constants in page context
2021-03-24 13:28:11 +00:00
renovate[bot] bded0d6a67 Update dependency @babel/preset-env to v7.13.12 (https://github.com/woocommerce/woocommerce-blocks/pull/3994)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-24 03:12:15 +00:00
Albert Juhé Lluveras c7bec5bcd2 Remove checks for WP 5.4 from e2e tests (https://github.com/woocommerce/woocommerce-blocks/pull/3993)
* Remove checks for WP 5.4 from e2e tests

* Update e2e local environment set up docs
2021-03-23 15:09:04 +01:00
Seghir Nadir ef03089245 Add scope to PluginArea (https://github.com/woocommerce/woocommerce-blocks/pull/3992) 2021-03-23 12:48:08 +00:00
Thomas Roberts 1c986ebbf8 Split unit tests up from e2e tests (https://github.com/woocommerce/woocommerce-blocks/pull/3989) 2021-03-23 12:31:42 +00:00
Darren Ethier c622dc653c Expose the shouldSavePayment method value to registered payment methods (https://github.com/woocommerce/woocommerce-blocks/pull/3990)
* Expose the shouldSavePayment method value to registered payment methods

* update docs for `shouldSavePayment`
2021-03-22 13:55:12 -04:00
Mike Jolley 5f42b2312c Update data-controls and expect console logs from deprecated select controls so tests pass (https://github.com/woocommerce/woocommerce-blocks/pull/3991) 2021-03-22 17:13:48 +00:00
Darren Ethier ae0b1d6b7d Refactor Payment Methods Integration API to fire `onPaymentProcessing` event with saved tokens. (https://github.com/woocommerce/woocommerce-blocks/pull/3982)
* Implement `started` action creator.

Also for TS typing I changed `paymentMethodData` to be optional for both the `success` and `started` action creators.

This is because the behaviour allows for paymentMethodData to be retained in the state if it is not explicitly provided on dispatch.

* Implement started action creator on the exposed payment status dispatcher.

The implementation now allows for receiving payment method data when the `start` status is dispatched.

* Don’t overwrite payment method data when `success` status is set.

It is intended that if paymentMethodData is undefined, that is simply passed through to the dispatched action. This signals the reducer to retain the existing paymentMethodData in state (when undefined).

The correct way to clear the paymentMethodData is to either explictly provide an empty object, or set the status to pristine.

* Fix types for incoming paymentMethodData

* Implement receiving paymentMethodData in reducer.

This changeset also configures the reducer to retain the existing paymentMethodData in state (and related correlated information0 when the provided paymentMethodData property is undefined.

The only time paymentMethodData should be reset in state is when it is explicitly provided or the status is set to PRISTINE.

* Fix types for started action dispatcher.

* Explicitly clear paymentMethodData state when express payment started.

Also restores previous paymentMethodData when express payment cancelled.

* Switch saved tokens to utilize the payment method status started dispatched action instead of success.

This change ensures that savedToken handlers registered by payment methods have access to the `onPaymentProcessing` checkout event.

* fix typedef

Really just need to ensure types are used anywhere, this is a temporary change due to the time sensitive needs for this PR.

* Update assets/js/base/context/cart-checkout/payment-methods/reducer.ts

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-03-22 10:02:36 -04:00
renovate[bot] f4668f403e Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/3987)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-22 13:40:57 +00:00
Albert Juhé Lluveras b6403bd66c Show compatibility notice when adding the Cart and Checkouts blocks in the editor (https://github.com/woocommerce/woocommerce-blocks/pull/3937)
* add guide

* Add missing translation strings

* Use localStorageState so dismissing the compatibility notice is persisted

* Add types

* Split notice text in two paragraphs

* Update notice texts

* Remove unnecessary empty line

* Cleanup

* Prevent Gutenberg stealing focus (and closing) guide modal

* Add tests

* Don't show compatibility notice in WP <= 5.4

* Don't have tests inside if clauses

* Fix test breaking in latest Gutenberg version

* Remove unnecessary openDocumentSettingsSidebar

* Rename CompatibilityNotice to CartCheckoutCompatibilityNotice

* Add try/catch blocks around JSON operations in useLocalStorageState

* Create useCompatibilityNotice hook

Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2021-03-19 11:05:42 +01:00
renovate[bot] 2aa3f49d47 Update dependency @testing-library/react-hooks to v5.1.0 (https://github.com/woocommerce/woocommerce-blocks/pull/3971)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-18 00:04:22 +00:00
renovate[bot] 5f508b4117 Update dependency @automattic/color-studio to v2.5.0 (https://github.com/woocommerce/woocommerce-blocks/pull/3970)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-17 21:51:28 +00:00
Darren Ethier eba9361cb8 Update the `wp-env` package to latest (https://github.com/woocommerce/woocommerce-blocks/pull/3972)
* update wp-env package

* bump versions in e2e workflows

* Fix job names

* explicitly set core WP version

without this, the `mappings` configuration option causes breakage due to what appears to be a bug in the package.

* Change how GB install job is setup

`wp-env` currently has an issue where if you define the explicit WP version to install (vs just what is included by default), permissions aren’t configured correctly for the WP folder in the containers. So the ability to install plugins via cli is not possible. This only surfaces in linux environments.

I tried a number of ways to work around this but in the end the only foolproof way is to configure the environment to be setup with the installed plugin.
2021-03-17 11:06:36 -04:00
Seghir Nadir 835da587f3 update version 2021-03-16 17:34:08 +01:00
github-actions[bot] 0d8c8567c1 Release: 4.7.0 (https://github.com/woocommerce/woocommerce-blocks/pull/3966)
* generating changeset for pull request

* generating changeset for pull request

* add changelog and update WP versions

* add testing notes

* Bumping version strings to new version.

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2021-03-16 17:33:01 +01:00
Mike Jolley 06ccdbe331 Tests: Rename changeQuantity to setItemQuantity
This was broken in dc18112911
2021-03-16 12:23:33 +00:00
Mike Jolley dc18112911 Google Analytics Integration - Action Hooks and initial tracking events (https://github.com/woocommerce/woocommerce-blocks/pull/3953)
* Remove item and change quantity doAction hooks

* Cart event

* Event/Action system for cart events

* GA implementation

* Revert some unrelated commits

* revert change

* Listing impression config for all products

* Category support

* remove unrelated change

* Remove listype and block import

* wrap action in try catch

* Tidy

* Only load analytics scripts in experimental builds

* Made console log more specific

* Wrap script reg in experimental check
2021-03-16 11:40:22 +00:00
renovate[bot] 73e3bd9ace Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/3964)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-16 10:11:19 +00:00
Raluca Stan 762634155b Fix cart preview when shipping calculator is false and core setting for require address is true (https://github.com/woocommerce/woocommerce-blocks/pull/3946)
* Fix cart preview when shipping calculator is false and core setting for require address is true

* Type base/components/cart-checkout/totals/shipping/index file

* Fix return statement for ShippingLocation component

* move logic to preivewCart

Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2021-03-16 10:57:04 +01:00
Raluca Stan 9a0a762057 Fix block elements that don't play well with dark backgrounds (https://github.com/woocommerce/woocommerce-blocks/pull/3887)
* Remove custom style for Product search block and  ProductByCategoryBlock

These buttons are overwriting the default button appearance used in other blocks,
making the UI inconsistent. They lack focus and are not visible on dark backgrounds

* Replace the remove filter icon with a svg using currentColor as fill

* Fix Price Slider range icons visual bug

* Adjust close active filter icon colors to work for white as currentColor
2021-03-16 10:43:04 +01:00
Seghir Nadir fae5a0d7fd Update extensions types and fix inconsistent type from server. (https://github.com/woocommerce/woocommerce-blocks/pull/3908)
* Update extensions types

* fix typo

* Update assets/js/type-defs/cart.ts

Co-authored-by: Mike Jolley <mike.jolley@me.com>

* rebase

Co-authored-by: Mike Jolley <mike.jolley@me.com>
2021-03-16 10:16:56 +01:00
Mike Jolley 38775590d5 Allow FormattedMonetaryAmount to deal with string based numbers (https://github.com/woocommerce/woocommerce-blocks/pull/3958) 2021-03-15 15:03:47 +00:00
Darren Ethier afc93035fd Add new config property for payment method registration that allows for additional saved customer token handling. (https://github.com/woocommerce/woocommerce-blocks/pull/3961)
* Add new config for saved token processing by payment methods.

* Implement new saved token handling config from registered payment methods.

* Implement new saved token handling config from registered payment met… … 2b42205 …hods.

* make sure saved token handler component is only loaded when a token payment method is selected
2021-03-15 04:50:49 -04:00
Mike Jolley edcd776a50 Always set value (https://github.com/woocommerce/woocommerce-blocks/pull/3957) 2021-03-12 11:44:34 -05:00
Albert Juhé Lluveras 56092fcdc4 Remove extra padding from payment methods with no description (https://github.com/woocommerce/woocommerce-blocks/pull/3952)
* Remove extra padding from payment methods with no description

* Fix typo in a code snippet in payment method docs

* Remove unnecessary div
2021-03-12 15:40:09 +01:00
Mike Jolley ab8011bb4b Only return a single handle for block styles (https://github.com/woocommerce/woocommerce-blocks/pull/3932) 2021-03-12 11:12:14 +00:00
Seghir Nadir a422dfd2e4 Fix save payment checkbox not showing (https://github.com/woocommerce/woocommerce-blocks/pull/3950) 2021-03-11 15:40:18 -05:00
Albert Juhé Lluveras 70887e442a Add docs on how to run e2e tests with a specific environment locally (https://github.com/woocommerce/woocommerce-blocks/pull/3945) 2021-03-11 16:57:48 +01:00
Seghir Nadir dff4772d82 Add types to hooks (https://github.com/woocommerce/woocommerce-blocks/pull/3913)
* type hooks

* type useStoreCart

* type the rest

* Remove old typedefs

* Specify that the return value from useDispatch is a Promise< void >

* Change return type of removeItem

* If ref.current is undefined then return value without checking shallowEq

* Revert "Specify that the return value from useDispatch is a Promise< void >"

This reverts commit 97863bd584d38024398913a79ce63fa6b964846a.

* Remove type parameter from removeItem and changeCartItemQuantity

* Change action return type to cater for generator functions

* Remove type parameter from addItemToCart

* Add mapped types file to help with actions that are generator functions

* Include addItemToCart in return types of cart actions

* Use custom DispatchFromMap

* Add todos for why we've redefined functionality that exists in Calypso

* update types

* remove fromEntries and use polyfill

* address review

* ignore ts no shadow

* fix test errors

Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
2021-03-10 15:03:26 +00:00
renovate[bot] 1a010d70fa Update babel monorepo to v7.13.10 (https://github.com/woocommerce/woocommerce-blocks/pull/3939)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-10 13:34:32 +00:00
renovate[bot] 53b79e651e Update dependency @stripe/react-stripe-js to v1.4.0 (https://github.com/woocommerce/woocommerce-blocks/pull/3941)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-10 12:10:20 +00:00
renovate[bot] e0900d6b15 Update dependency @octokit/graphql to v4.6.1 (https://github.com/woocommerce/woocommerce-blocks/pull/3940)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-10 11:41:35 +00:00
renovate[bot] fe402f37cc Update dependency @stripe/stripe-js to v1.13.1 (https://github.com/woocommerce/woocommerce-blocks/pull/3942)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-10 11:40:59 +00:00
Albert Juhé Lluveras 85d450a00c Hide payment methods that have missing dependencies and display an error in the admin (https://github.com/woocommerce/woocommerce-blocks/pull/3920)
* Hide payment methods that have missing dependencies and display an error in the admin

* Clarify docs

* Use wp_scripts() instead of the global

* Don't localize logs and always show the docs link

* Add wards to ensure keys exist

* Show a console error instead of a notice in the admin
2021-03-09 11:15:18 +00:00
Raluca Stan e187b9ef88 Update/typescript checkout shipping (https://github.com/woocommerce/woocommerce-blocks/pull/3925)
* Type shipping related hooks and packages

* Move component interface from shared shipping types file

* Fix Typescript import errors

* Type FormattedMonetaryAmountProps

* Change FormattedMonetaryAmountProps's value prop type

Looks like TotalsItem was the only on sending '-' as a value and it looks like it’s no longer passed through.

* Move `displayType` as a prop on FormattedMonetaryAmount

* Spacing

* Spacing

Co-authored-by: Mike Jolley <mike.jolley@me.com>
2021-03-09 10:55:24 +00:00
Mike Jolley 86328758bb Add billing data to payment method registration, convert cart/checkout context provider to typescript (https://github.com/woocommerce/woocommerce-blocks/pull/3922)
* Add billingData within usePaymentMethodRegistration

* Add typescript config

* Rename to TS

* Typing in context

* FIxed TS warnings

* Typed event emitters

* subscribers > observers

* Renaming some types

* Remove duplicate definition in tsconfig

* removed undefined check
2021-03-09 10:50:51 +00:00
Albert Juhé Lluveras 29dd816e1d Fix storybook after TS changes (https://github.com/woocommerce/woocommerce-blocks/pull/3938) 2021-03-09 10:54:38 +01:00
renovate[bot] aa8e19b12e Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/3930)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-09 09:19:30 +00:00
Darren Ethier ebf6752f84 Update payment-method-integration.md
Fix indentation on code example.
2021-03-08 08:35:56 -05:00
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