Commit Graph

2747 Commits

Author SHA1 Message Date
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