Commit Graph

1608 Commits

Author SHA1 Message Date
Seghir Nadir 0ca78dd654 Remove Keep me updated (https://github.com/woocommerce/woocommerce-blocks/pull/2057)
* remove checkbox of keep me updated

* remove double margin on useSameForBilling
2020-04-06 16:57:38 +01:00
Mike Jolley 5d2a630a07 Use mousedown event so view switches before blur event prevents the switch (https://github.com/woocommerce/woocommerce-blocks/pull/2129) 2020-04-06 16:36:03 +01:00
Mike Jolley cc3ed31feb Disable checkout form in the editor (https://github.com/woocommerce/woocommerce-blocks/pull/2128)
* Move no-shipping-placeholder to block - allow pointer events

* Allow payments placeholder to have pointer events

* Enable pointer events for children

* Wrap checkout with disabled
2020-04-06 16:35:09 +01:00
Darren Ethier 22ea154c6f Implement stripe server-side handling (stripe cc) (https://github.com/woocommerce/woocommerce-blocks/pull/2120)
* remove usage of paymentstatus dispatcher from apple pay

* add type-def for payment data response objects

* make sure shape of payment data for stripe cc is as server expects

* include payment data in checkout processor request

* fix bug that got reintroduced in rebase

* rename typedef
2020-04-06 08:44:00 -04:00
Darren Ethier d108e5ea96 Update stripe payment methods to work with new event emitters (https://github.com/woocommerce/woocommerce-blocks/pull/2115)
* Add interface for setting an express payment error notice.

* fix typedefs

* remove usage of paymentstatus dispatcher from stripe cc

* remove usage of paymentstatus dispatcher from apple pay

* remove any existing express payment notice on click

* revert buggy change with abort payment call

- also ensure that completePayment sets applePayProcessing to false
2020-04-06 08:18:35 -04:00
Mike Jolley 3ac335e1f9 Storefront compatibility for sticky proceed to checkout button on mobile (https://github.com/woocommerce/woocommerce-blocks/pull/1999)
* Storefront compatibility

* Remove storefront actions
2020-04-06 07:50:33 -04:00
Darren Ethier 4baa99cf65 Refactor payment method interface to remove payment status dispatcher (https://github.com/woocommerce/woocommerce-blocks/pull/2116)
* don’t expose payment method status dispatcher on payment method interface

* update apple-pay-express to use new currentPaymetnStatus object shape
2020-04-06 07:28:46 -04:00
Mike Jolley d637c28d62 Update add to cart to useStoreCart hook (https://github.com/woocommerce/woocommerce-blocks/pull/2103)
* Switch add to cart events to useStoreCart hook

* Add to cart endpoint

* Inject dependenct schemas

* Feedback, cart items are based on product schema

* Variable typo

* Move hook to base

* Update totals correcrly

* Update tests to use schema/routes class

* Update tests to correctly use schema

* Remove type hint to prevent strict standards error
2020-04-06 11:36:28 +01:00
Seghir Nadir ea703c4a13 Add forcing source map on production to analyze tree-shaking (https://github.com/woocommerce/woocommerce-blocks/pull/2117)
* add forcing source map on production

* rename command to explore
2020-04-06 10:00:47 +01:00
Darren Ethier 4f990fd475 switch from event subscription to status watch (https://github.com/woocommerce/woocommerce-blocks/pull/2119) 2020-04-04 13:36:46 -04:00
renovate[bot] e54e08bccf Update npm to v6.14.4 (https://github.com/woocommerce/woocommerce-blocks/pull/1989)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-03 14:58:32 +01:00
Albert Juhé Lluveras 72801baf97 Switch 'Try reloading the page' from links to buttons (https://github.com/woocommerce/woocommerce-blocks/pull/2105)
* Switch 'Reload page' from links to buttons

* Rename class to wp-block-link-button

* Remove no longer needed CSS property
2020-04-03 15:22:56 +02:00
Mike Jolley d83214ed44 Ensure `AbstractBlock::enqueue_data` is only run once in the editor request. (https://github.com/woocommerce/woocommerce-blocks/pull/2113)
* Enqueue assets once

* Updates classes extending AbstractBlock to use enqueue_scripts
2020-04-03 14:17:32 +01:00
Albert Juhé Lluveras 8a78371703 Checkout: fix skeleton and responsive styles (https://github.com/woocommerce/woocommerce-blocks/pull/2109) 2020-04-03 14:17:09 +01:00
Darren Ethier 30fb8bef28 Fix flaw with event emitters and complete checkout flow for the cheque payment method. (https://github.com/woocommerce/woocommerce-blocks/pull/2108)
* Allow for priority to be set on event emitters

* Add payment event emitters

* add new actions/status to checkout state context

* implement event emitters in payment data context

* refactor checkout state context to use new actions in event emitters

* refactor checkout processor to handle new event emitters

* fix type-defs for registered payment methods

* register observer for cheque payment method integration

* add inline todo

* fix sort

* fix tests and add test for priority usage in event emitters

* remove todo and just add explanatory comment

* condense sort logic

* lowercase test description

* abstract emitter callback to reduce code

* don’t process passed in errors if it’s undefined

* improve error response expectation for payment processing event observer
2020-04-03 07:50:54 -04:00
Seghir Nadir c361a158c4 Respect needs_shipping in Cart and Checkout (https://github.com/woocommerce/woocommerce-blocks/pull/2101)
* replace SHIPPING_ENABLED with needsShipping

* rename needsShipping variable

* only show shipping in checkout sidebar if we need shipping
2020-04-02 18:10:36 +01:00
Seghir Nadir cede3a0acf disable proceed to checkout if rates are loading or being selected (https://github.com/woocommerce/woocommerce-blocks/pull/1978)
* disable proceed to checkout if isCalculating is true

* add checkout provider

* remove unnecessary duplicate checkout count increment/decrement.

* remove redudant checkoutProvider

* remove already handled todo

Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
2020-04-02 18:05:08 +01:00
Mike Jolley f0b4be8bc8 Add Payment Methods Registry for registering scripts and data (https://github.com/woocommerce/woocommerce-blocks/pull/2090)
* Added cheque gateway and payment method registration system

Fix promises

Remove log

Use status, not checkoutstate

Bug @nerrad showed me

Payment method type registry

Refactor integrations to register themselves.

Stripe and Cheque Integrations/registration

Splt gateways into separate files on build

Add settings from server to cheque gateway

Merge apple and credit card stripe scripts

* Missing files from rebase

* Tweaks to payment-methods-registry (https://github.com/woocommerce/woocommerce-blocks/pull/2091)

* Small tweaks and docblock updates

* Handle undefined settings

* rebase fix

* Simplify promise

* Remove filesuffix for payment methods config

* Fix typo

* Rebase fix

* Update cart and block actions

* Add woocommerce_blocks_payment_method_type_registration

* Missing method names

* Missing name in stripe

* replace actions with script dependencies

* Scripts are needed in admin context too, by default

* Put back the hooks...

* Add is_active check to see if assets need to be enqueued or not

Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
2020-04-02 18:04:15 +01:00
Seghir Nadir 0ac3300ebf fix broken e2e-tests (https://github.com/woocommerce/woocommerce-blocks/pull/2102) 2020-04-02 16:10:27 +01:00
renovate[bot] 11a63860a9 Update babel monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/2014)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-02 15:10:55 +01:00
Mike Jolley 8468869319 Cart item validation and notices in cart/checkout (https://github.com/woocommerce/woocommerce-blocks/pull/2079)
* Add error handling to cart API

* Handle new error codes in checkout

* Display errors in cart

* Fix failing test

* Move error codes to constants
2020-04-02 15:04:43 +01:00
renovate[bot] 95c1a53b2f Update dependency @types/react to v16.9.31 (https://github.com/woocommerce/woocommerce-blocks/pull/2015)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-02 14:50:15 +01:00
renovate[bot] fd6c4b2e73 Update dependency autoprefixer to v9.7.5 (https://github.com/woocommerce/woocommerce-blocks/pull/2016)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-02 14:48:33 +01:00
renovate[bot] cfb4d83d2c Update storybook monorepo to v5.3.18 (https://github.com/woocommerce/woocommerce-blocks/pull/1990)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-02 14:47:50 +01:00
Albert Juhé Lluveras 503fb9bd70 Update Checkout skeleton to match layout introduced in woocommerce/woocommerce-blocks#2041 (https://github.com/woocommerce/woocommerce-blocks/pull/2099) 2020-04-02 14:40:49 +01:00
renovate[bot] 2117453656 Update mariadb Docker tag to v10.5 (https://github.com/woocommerce/woocommerce-blocks/pull/1988)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-02 14:40:27 +01:00
renovate[bot] 3958de2f88 Pin dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/2084)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-02 14:39:33 +01:00
renovate[bot] d98a0d89f9 Update dependency eslint-config-prettier to v6.10.1 (https://github.com/woocommerce/woocommerce-blocks/pull/2086)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-02 14:38:59 +01:00
Albert Juhé Lluveras 73d1432b02 Hook up checkout validation with context (https://github.com/woocommerce/woocommerce-blocks/pull/2033)
* Hook up checkout validation with context

* Make sure hasValidationErrors is up to date in onCheckoutProcessing

* Move validation check inside CheckoutProcessor's processCheckout

* Make sure all checkout form fields have a unique ID

* Don't clear checkout context errors in shipping context

* Move CheckoutProcessor to the top so scrollToTop works

* Do not disable Place Order Button if there are errors

* Split checkValidation and processCheckout in Checkout Provider

* Refactor event emitter to use Maps

* Save payment method errors to validation context

* Show an notice when a payment method has an error

* Make sure JS errors during payment are displayed

* Remove error notice when payment method doesn't return an error anymore

* Make sure payment methods know if shipping and billing addresses are the same

* Make sure checkout is only processed if payment methods didn't fail

* Make sure state input also has an id

* Clear input and select errors on unmount

* Pass id to CountryInput and StateInput

* Fix function name

* Add missing default context values

* Move onCheckoutCompleteError effect to CheckoutBlock

* Remove conditional from shipping setHasError
2020-04-02 11:27:54 +02:00
renovate[bot] 837a52f44f Update dependency config to v3.3.1 (https://github.com/woocommerce/woocommerce-blocks/pull/2085)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-02 10:36:41 +02:00
renovate[bot] 6e70e3b9c1 Update dependency jest to v25.2.4 (https://github.com/woocommerce/woocommerce-blocks/pull/2087)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-02 10:33:47 +02:00
Darren Ethier b0370b44b9 split up payment-methods.js file into smaller bits (https://github.com/woocommerce/woocommerce-blocks/pull/2089)
- adds more inline docs
- improves/adds more type-defs
2020-04-01 10:58:50 -04:00
Darren Ethier 2d53b2ace1 Refactor checkout context provider to be more flexible and implement CartProvider (https://github.com/woocommerce/woocommerce-blocks/pull/2083)
* Rename and move existing checkout provider to checkout-state provider.

This allows us to re-use the interface exposed on this provider for cart and checkout blocks.

* refactor checkout provider to implement the new checkout state provider.

* Add Cart provider and export

* fix type-defs

* fix editor context provider and ensure all `isEditor` checks come from this provider

* fix type definition

* implement cart provider
2020-04-01 05:27:53 -04:00
Darren Ethier df851aaff3 refactor checkout error status dispatcher (https://github.com/woocommerce/woocommerce-blocks/pull/2082)
- setHasError now receives a boolean that determines what state to set.
- remove clearError dispatcher
- fix related type-defs in checkout context.
2020-03-31 15:28:36 -04:00
Mike Jolley 9b0f545398 Parse error response before rejecting (https://github.com/woocommerce/woocommerce-blocks/pull/2080) 2020-03-31 17:00:03 +01:00
Darren Ethier d3fdc4b358 Finish wiring up shipping data context provider and add disabled state to checkout submit button (https://github.com/woocommerce/woocommerce-blocks/pull/2070)
* add selecting rate resolution state to the cart store

* expose whether rate is being selected on useSelectShippingRate

* Cleanup and refactor ShippingDataProvider

- remove un-needed component and move shipping rates into context provider
- remove error handling (currently the ui/ux for the checkout should result in no errors and any api errors are non-recoverable).
- Add logic for shipping rate selection into context provider and add event emitters for it.
- increment/decrement checkout calculation counts when shipping rates are being selected.

* dispatch checkout error if there is an error

* disable place order button if checkout is calculating or has error

* update doc block

* fix convention for js comment blocks
2020-03-31 11:40:27 -04:00
Albert Juhé Lluveras 8bac7b8264 Fix minor Stripe payment method issues (https://github.com/woocommerce/woocommerce-blocks/pull/2078)
* Fix params mismatch in Stripe

* Wrap Strip onSubmit with a try/catch block

* Fix createSource signature
2020-03-31 15:21:54 +02:00
Darren Ethier 355c1269d8 Implement mechanism for reliably passing through server data in editor context. (https://github.com/woocommerce/woocommerce-blocks/pull/2076)
* add method for enqueueing editor assets for the block editor

* configure Checkout to ensure editor assets are loaded in the block editor.

* move common functions to abstract

* ensure cart has server data passed through to editor

* ensure `enqueue_data` is only ever called once.

* make sure we enqueue data for cart

* add missing attributes arg

* remove logic that doesn’t do anything
2020-03-31 09:20:49 -04:00
Seghir Nadir 0046b73bbf delete passed arg to useShippingRates since it's not needed 2020-03-31 13:22:41 +01:00
Seghir Nadir 868f21c62c dont include stripe with Cart block 2020-03-31 13:21:25 +01:00
Darren Ethier 6c75dd9eae make sure payment method assets are loaded in block editor (https://github.com/woocommerce/woocommerce-blocks/pull/2075) 2020-03-31 12:56:32 +01:00
Rua Haszard 9d2fec68d0 add extra checks to checkout/cart/order APIs to avoid editor errors (https://github.com/woocommerce/woocommerce-blocks/pull/2072)
* add extra checks to checkout/cart/order APIs to avoid editor errors

* remove redundant register_block_script, introduced in rebase of woocommerce/woocommerce-blocks#2071

* prevent JS errors in checkout block in editor:
- add fallback state in defaults
- this is needed because checkoutData setting is null in admin

* Revert "add extra checks to checkout/cart/order APIs to avoid editor errors"

This reverts commit a26045b4a4675eb90b6b7235e2df0d29ca776915.

* Revert "prevent JS errors in checkout block in editor:"

This reverts commit 79729617f17c855ad71938af7703119fa5ccdabf.

* Hydrate from API conditonally

Co-authored-by: Mike Jolley <mike.jolley@me.com>
2020-03-31 11:57:28 +01:00
Albert Juhé Lluveras 4d19b0a18a Add 2.5.15 changelog 2020-03-31 12:54:12 +02:00
Mike Jolley 61a5b7b132 Add checkout error state (https://github.com/woocommerce/woocommerce-blocks/pull/2069)
* Add checkout error state

* Update message wording and icon
2020-03-31 11:47:48 +01:00
Mike Jolley bf8715707d [Experiment] Add container to run php unit tests in docker (https://github.com/woocommerce/woocommerce-blocks/pull/2004)
* Add container to run php unit tests in docker

* Improvemnets to entrypoints

* Simplfiy dockerfile
2020-03-31 11:47:40 +01:00
Albert Juhé Lluveras 6df879a922 Load product grid styles in WP <=5.2 (https://github.com/woocommerce/woocommerce-blocks/pull/2000)
* Load product grid styles in WP <=5.2

* Explicitly exclude 'product-list-style' from default builds
2020-03-31 12:46:38 +02:00
Darren Ethier f2b5448c66 Revert "Ensure woocommerceanalytics checkout event fires for checkout block (https://github.com/woocommerce/woocommerce-blocks/pull/2038)"
This reverts commit 5d4ae04a3f.
2020-03-31 06:44:31 -04:00
Rua Haszard 5d4ae04a3f Ensure woocommerceanalytics checkout event fires for checkout block (https://github.com/woocommerce/woocommerce-blocks/pull/2038)
* fire woocommerce_after_checkout_form hook after checkout block

* fix bad whitespace after rebase
2020-03-31 10:44:23 +13:00
Rua Haszard 71beb6163f Add storybook info to dev docs (https://github.com/woocommerce/woocommerce-blocks/pull/2051)
* add basic doc for storybook

* link to storybook from main doc
2020-03-31 08:38:11 +13:00
Albert Juhé Lluveras 140bdc39d0 Add tests to some cart and checkout hooks (https://github.com/woocommerce/woocommerce-blocks/pull/2013) 2020-03-30 20:32:28 +02:00