- updated release pull request description template to be more condensed and require no editing.
- moved some elements of release pull request items into pull request template (handled at the PR level instead of the release level).
- updated the release pull request checklist templates to include mobile and desktop test coverage for ui changes.
* Add extensionsConfig when registering a payment method
The extension config has its own canMakePayment where extensions can add callback using a payment method's name.
* Make canMakePayment a getter on PaymentMethodConfig
Because extensions can register canMakePayment callbacks for a payment method before it is registered we need to transform
canMakePayment into a getter so that it's always recalculating it's value based on the registered callbacks/
* Rename extension related config and method
* Format comments
* Add an extension namespace to registerPaymentMethodExtensionCallback utility
This commit changes the API for how extensions will register their own callbacks to canMakePayment, so that they can add their namespace and also callbacks for multiple payment methods.
* Format comments
* Update assets/js/blocks-registry/payment-methods/payment-method-config.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update assets/js/blocks-registry/payment-methods/registry.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update assets/js/blocks-registry/payment-methods/payment-method-config-helper.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update assets/js/blocks-registry/payment-methods/payment-method-config-helper.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update assets/js/blocks-registry/payment-methods/registry.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Fix eslint warning
* Handle errors at registerPaymentMethodExtensionCallbacks level
* Update assets/js/blocks-registry/payment-methods/registry.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Fix formatting issues
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
* Update registry to register components with block JSON metadata
* Use updated registration API in sample block
* remove editorScript
* Rename area and allow forced blocks to do it's thing without defining a template manually
* More naming consistency
* Validate a registered checkout block has at least one valid parent
* Append forced blocks
* Fix child detection
* Improve render logic to remove clone element
* Areas instead of block names
* Revert "Areas instead of block names"
This reverts commit c8d68e6424313ed15ca1eb1f91a3edfc24d06a8d.
* revert area change
* Registration system
* Refactor block registration to handle components + forcing
* Remove need for atomic block registration
* add attributes to namespaced blocks only
* Update area names to new format
* Avoid passing custom props to DOM
* Put back usage of cloneelement for DOM elements
* correct case of innerBlockAreas
* Inline documentation for renderParentBlock
* Play nice with other attributes when registering forced blocks
* Add Drawer component
* Use element dataset instead of a window global
* Rename miniCartOverlay to miniCartDrawerPlaceholder
* Refactor styles so screen overlay covers the entire screen
* Use rem instead of em for the drawer title size to keep it consistent between renders
* Keep focus when replacing the mini cart button
* Match overlay colors from designs
* Use is-loading class like several other blocks
* Add more doc comments
* Don't listen to clicks on Mini Cart button when it's open
* Update Drawer component styles
* Extract function from lazyLoadScript to simplify code
* Prevent TS errors when assigning attributes to script element
* Update assets/js/base/utils/lazy-load-script.ts
Co-authored-by: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
* Update assets/js/base/utils/lazy-load-script.ts
Co-authored-by: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
* Empty commit for release pull request
* Add changelog to readme.
* Update metadata for release
* Testing notes for release
* Apply suggestions from code review
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Apply suggestions from code review
* Bumping version strings to new version.
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* force insert blocks
* add force attribute
* delete console.log
* make sure we don't override move
* polish force system in editor
* get sample block to show on frontend
* add force to frontend
* remove force on blocks
* move ref to function
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* remove todo from sample block
* Add newsletter block
* Block registration
* Move provider/processor so separate them from context providers
* customData implementation for setting customData for requests
* Make data and schema callbacks optional in extendrestapi class
* schema_type should be data_type
* Allow checkout endpoint to be extended
* Support validation, sanitization, and defaults on nested REST properties
* Experimental endpoint data for newsletter field
* Add extension data to requests
* SET_EXTENSION_DATA
* Update types
* Add todo
* move check within hook function
* Remove newsletter block
This is because we're testing with the integration being done in a separate extension
* Delete newsletter subscription block
* Pass the result of hooks down to the children blocks
We need to do this to allow extension blocks to modify the extensionData (so they can send custom input to the REST api when submitting the checkout form).
* Remove newsletter signup block
* remove checkoutSubmitData
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
* Create MiniCart block prototype
* Use window.onload instead of DOMContentLoaded
* Don't load translations for scripts without localized strings
* Don't try to load cart instance in API requests
* Remove PHP pre-rendering
* Fix some typos
* Move Mini Cart block files under 'cart-checkout' directory
* Update selectors to follow guidelines
* Only enable the MiniCart block in experimental builds
* Fix wrong translations element selector
* Improve lazyLoadScript and preloadScript documentation
* Move lazy-load-script and preload-script to base-utils
* Add function to check if script tag is already in the DOM
* Add documentation for `cart/extensions`
* Add documentation for ExperimentalDiscountsMeta slot
* Add clearer information to `cart/extensions` documentation
* Change checkout screenshot
* Change checkout screenshot
* Update documentation into new template and amend based on suggestions
* Fix typo
* Fix punctuation and remove passive-aggressive voice!
* Update docs/extensibility/extend-rest-api-update-cart.md
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Remove account creation gating
* Unneccessary use statements
* Tidy up with null coalescing operators
* Add __experimental_woocommerce_blocks_checkout_update_order_from_request action
* Default to 200 status
* add docs in feature flag file
* align docs with hook
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
* Added Stock Status filter
* Pre pull request clean up code
* Reverted package-lock.json ( downgraded node version to 12 )
* Coped package-lock.json from trunk
* Fix label includ path
* Created new component for Filters elements labels
* Removed hideOutOfStock from AllProducts and realized hide out of stock functionality from SQL query
* Linter fix
* Review suggestion changes
* Update index.js
* Fixed preview part for stock and attribute filters
* Update assets/js/blocks/stock-filter/block.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Bring back removed css
* Allow custom stock statuses
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Escape statuses for sql query
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
Co-authored-by: aaron <aaron.yor@gmail.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit 4a14c226b739f3d88f99647206627ff351ef01ad
Merge: 8f2bc114 4fccfd88
Author: Thomas Roberts <thomas.roberts@automattic.com>
Date: Fri Aug 20 16:06:19 2021 +0100
Merge branch 'add/stock-filter' of git://github.com/NovemBit/woocommerce-gutenberg-products-block-fork into NovemBit-add/stock-filter
commit 4fccfd88998fde20b603d99d9866d3cb08cf7bf4
Merge: 8012b2b4 e7bd0e6e
Author: groguo <eriktadevosyan07@gmail.com>
Date: Fri Aug 20 13:17:42 2021 +0000
Merge from trunk
commit 8012b2b40e95b90e507698de677fba059ca9ef0a
Author: grogou <eriktadevosyan07@gmail.com>
Date: Fri Aug 20 16:53:56 2021 +0400
Escape statuses for sql query
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit 304348aeb5448153ad3365ff09ca37f265af87cc
Author: grogou <eriktadevosyan07@gmail.com>
Date: Fri Aug 20 16:53:18 2021 +0400
Allow custom stock statuses
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit b2f01e4ed6738ef3091afbac7d4131c984b33bc7
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 28 06:22:04 2021 +0000
Bring back removed css
commit caafffda5de6d3f31b817ab4886847958f693e24
Author: grogou <eriktadevosyan07@gmail.com>
Date: Tue Jul 27 23:35:15 2021 +0400
Update assets/js/blocks/stock-filter/block.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit ae381de8aa49d0b16d2dabff7b6ecffedc511460
Author: groguo <eriktadevosyan07@gmail.com>
Date: Thu Jul 15 06:50:06 2021 +0000
Fixed preview part for stock and attribute filters
commit 7df5feab0a33f93786a29a625c1f27a4737c25bc
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 20:15:05 2021 +0400
Update index.js
commit af0294ce6a21a0032c7eeb00fe986eddda188574
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:43:06 2021 +0000
Review suggestion changes
commit 16da25340fd7438e0fedd62b3e8b52bc33b80852
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:40:52 2021 +0000
Linter fix
commit 594125a68c5c0d854418d5f3e76fb0e18c23b0a4
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:37:41 2021 +0000
Removed hideOutOfStock from AllProducts and realized hide out of stock functionality from SQL query
commit 94a54e3c7c8cb94323d41a11c6bb603d0648792e
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:21:51 2021 +0000
Created new component for Filters elements labels
commit e3d7fb2aad4b123693f0104c2ffd9af2a1273900
Author: aaron <aaron.yor@gmail.com>
Date: Wed Jun 2 11:57:06 2021 +0400
Fix label includ path
commit c9e3d02d5bf03614cbfd2d17ec1558dacc3252f1
Author: Seghir Nadir <nadir.seghir@gmail.com>
Date: Tue Jun 1 09:46:02 2021 +0100
remove usage of mustBeString (https://github.com/woocommerce/woocommerce-blocks/pull/4294)
commit b8923390e5d5433ef2c8a14891684b907051cd7e
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon May 31 16:07:59 2021 +0100
Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4290)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 6de68e41e2053a79cdce3e9d820c9b5656072685
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Thu May 27 12:57:49 2021 +0100
Check if product can be added to cart before adding ajax class to button (https://github.com/woocommerce/woocommerce-blocks/pull/4265)
commit a1ccaf4143dd9cd86f0f88ce956bcf7edb5e419a
Author: Thomas Roberts <thomas.roberts@automattic.com>
Date: Wed May 26 16:10:43 2021 +0100
Update version for next release
commit 24f882f5d53776abe2ee6440d68485083b5a8340
Author: Thomas Roberts <thomas.roberts@automattic.com>
Date: Wed May 26 15:42:21 2021 +0100
Bumping version strings to new version.
commit e1fd0825b72d7cc87c6f26329359cc39278cc760
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Wed May 26 15:31:37 2021 +0100
Update link to testing zip
commit 35521e54b756bf265cf6d61437cd5f55629fc2d4
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Wed May 26 14:04:42 2021 +0100
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
commit 7f3a1e629f04dcb71d3fb4313b3012aef13feb5f
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 26 08:52:31 2021 +0000
Update dependency downshift to v6.1.3 (https://github.com/woocommerce/woocommerce-blocks/pull/4272)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 593ef2b07f71341b3d0fc143876c24a4d50a64fb
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 26 05:04:55 2021 +0000
Update dependency @types/react to v16.14.8 (https://github.com/woocommerce/woocommerce-blocks/pull/4270)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 21f16d6d4ef10ada3f1631f72b4fb7dec1f4af72
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 26 03:47:54 2021 +0000
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>
commit 444256ea70c8b9ac89b4f4d5913396da9f4334cd
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 26 02:30:17 2021 +0000
Update dependency @types/lodash to v4.14.170 (https://github.com/woocommerce/woocommerce-blocks/pull/4269)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 5f9df572aed0b07606c7a4e5b684122a48862f94
Author: Thomas Roberts <thomas.roberts@automattic.com>
Date: Tue May 25 15:31:03 2021 +0100
Create 5.2.0 testing notes
commit 45abda651a668ddc4b1d36e8c76cf19d365d94c8
Author: Thomas Roberts <thomas.roberts@automattic.com>
Date: Tue May 25 14:52:37 2021 +0100
Update package.json
npm ci was not working correctly this will fix it.
commit c3daa6ce4c71b956e08200442626a0e29a3e5daf
Author: Thomas Roberts <thomas.roberts@automattic.com>
Date: Tue May 25 14:26:32 2021 +0100
Update changelog and WC tested up to
commit 61283092b32425450f4450d5224e156d24aa38ba
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Thu May 20 17:56:56 2021 +0100
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.
commit 193267b041e8e0fb9fe89bb68ad972b1f5b4b941
Author: Mike Jolley <mike.jolley@me.com>
Date: Tue May 25 12:49:13 2021 +0100
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>
commit c15e5123e47952f445fe159522f72cef290c9276
Author: Seghir Nadir <nadir.seghir@gmail.com>
Date: Tue May 25 10:46:28 2021 +0100
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
commit e2cf0baad0ee91f892a1cb1919ad0edbab0122c3
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Tue May 25 08:43:46 2021 +0100
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
commit 9b44c884fc68d81d6211f40f13409fac8503c2e3
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon May 24 18:14:37 2021 +0100
Update dependency @octokit/graphql to v4.6.2 (https://github.com/woocommerce/woocommerce-blocks/pull/4230)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 4973132a90ddc88e075d6d421c8677cf032c3264
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon May 24 16:40:05 2021 +0100
Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4253)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit b7eabf54bad4b7e08c7f4ef1484f7fea7ab64f20
Author: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
Date: Fri May 21 09:53:46 2021 +0200
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
commit 47556b9a39125423409dea8a3ae8c8ac34396fc0
Author: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
Date: Fri May 21 09:52:27 2021 +0200
Block Widgets: hide All Products and Filter blocks in the Customizer (https://github.com/woocommerce/woocommerce-blocks/pull/4225)
commit 208b21281763652bdcddb7390dfe955bddff4728
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Thu May 20 17:56:56 2021 +0100
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
commit 55f5bfd8cd720022380de1e811e8d1abb622209b
Author: Mike Jolley <mike.jolley@me.com>
Date: Thu May 20 15:07:12 2021 +0100
Create LICENSE (https://github.com/woocommerce/woocommerce-blocks/pull/4235)
commit 0b10f75ddf3d01c837f466f9d3f85dbc760b3d7b
Author: Albert Juhé Lluveras <contact@albertjuhe.com>
Date: Thu May 20 10:58:59 2021 +0200
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
commit 587be17d62db7b956c980fac4766456511243e10
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Wed May 19 10:55:15 2021 +0100
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>
commit 731c75e03100695131b4ec6afa8994e6cf9f4c00
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 19 07:36:46 2021 +0000
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>
commit ef6ad8882310dff6d1aa4ae847289acddc0dfebb
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 19 04:36:44 2021 +0000
Update dependency @types/lodash to v4.14.169 (https://github.com/woocommerce/woocommerce-blocks/pull/4234)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 096463ea4bf1bddc7d61e1b04320886ee2f21770
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 19 03:46:21 2021 +0000
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>
commit 8722839350e6725ea80da994bb8387966b75061c
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 19 02:48:45 2021 +0000
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>
commit 2f7e8edfebff59eeeeeb18d65fd658d5f432419e
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 19 01:32:34 2021 +0000
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>
commit 72e851a28c88653204ed8e4eff10c6bb2cb40c68
Author: Raluca Stan <raluca.stan@automattic.com>
Date: Tue May 18 15:09:30 2021 +0200
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.
commit 7b7119cfb0cfce5e1718804ca590a6b161d555f2
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue May 18 11:27:27 2021 +0100
Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4212)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 5f84e7dabbc788b769646a9bcba5a15a57b03e33
Author: Mike Jolley <mike.jolley@me.com>
Date: Tue May 18 10:37:31 2021 +0100
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
commit fccc72bedb0f320995f62ee5d91b1c8e2e9c2fa1
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Tue May 18 09:10:31 2021 +0100
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
commit 0b91fbeac282f729dbc8e8056d2e934392f401c0
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Mon May 17 15:00:57 2021 +0100
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>
commit 0464883ec668332db5a6399569880e7b3fa3ab3f
Author: Albert Juhé Lluveras <contact@albertjuhe.com>
Date: Sun May 16 20:00:06 2021 +0200
Don't default to fallback in getSetting if value is falsy (https://github.com/woocommerce/woocommerce-blocks/pull/4202)
commit f95f12d3215caf30f1f49e1d29c5826156914a33
Author: Mike Jolley <mike.jolley@me.com>
Date: Sun May 16 18:59:32 2021 +0100
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
commit db589e7e7f4809504b1aa83144116506a50bdd38
Author: Raluca Stan <raluca.stan@automattic.com>
Date: Sun May 16 19:41:34 2021 +0200
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>
commit b9b66f93adb5b0fdc22fc4ed9560eb6e2c1c72d9
Author: Mike Jolley <mike.jolley@me.com>
Date: Thu May 13 11:49:39 2021 +0100
Set order status to pending when no payment is needed (https://github.com/woocommerce/woocommerce-blocks/pull/4186)
commit 8ed63f765418ae8e7b2ee58004b4a9b1306eaeef
Author: Mike Jolley <mike.jolley@me.com>
Date: Thu May 13 11:21:21 2021 +0100
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
commit 90499cb3191137264ffde07cf082db8c4d6f77de
Author: Mike Jolley <mike.jolley@me.com>
Date: Thu May 13 11:20:37 2021 +0100
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
commit a813c931bb5f85f139429aa3bf094b2327a7f8cd
Author: Albert Juhé Lluveras <contact@albertjuhe.com>
Date: Thu May 13 12:14:15 2021 +0200
Set default store currency to USD in tests (https://github.com/woocommerce/woocommerce-blocks/pull/4203)
commit b1408933f75ca47dc39335984bfc1fe570a72aaa
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu May 13 10:16:04 2021 +0200
Update dependency config to v3.3.6 (https://github.com/woocommerce/woocommerce-blocks/pull/4195)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit d68bb11bb56d882f8755162ae6657cad76dfd16f
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu May 13 10:15:35 2021 +0200
Update dependency cssnano to v4.1.11 (https://github.com/woocommerce/woocommerce-blocks/pull/4196)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit beadbab90fe0813c0f36cc25a9e0b14a8f8e96d2
Author: Seghir Nadir <nadir.seghir@gmail.com>
Date: Wed May 12 13:32:05 2021 +0100
Add cart data to filters (https://github.com/woocommerce/woocommerce-blocks/pull/4164)
* add cart data to filters
* add extensions back to footer filter
commit c10fdf26bc37b1efb6b22d045e3aed72f5541a2a
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 12 13:04:44 2021 +0100
Pin dependency lodash to 4.17.21 (https://github.com/woocommerce/woocommerce-blocks/pull/4193)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit f92aac55f1a6fd67fba3885311ec74bcdb41034e
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 12 13:04:13 2021 +0100
Update dependency chalk to v4.1.1 (https://github.com/woocommerce/woocommerce-blocks/pull/4194)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 27cff5109889c0abca24124c1dabcb0b78da4929
Author: Mike Jolley <mike.jolley@me.com>
Date: Wed May 12 13:02:26 2021 +0100
Should be using value rather than name (https://github.com/woocommerce/woocommerce-blocks/pull/4187)
commit 560972a7eb306b6a27c298b7e3218df92a848e79
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Tue May 11 13:57:02 2021 +0100
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
commit 556ceb4b8a222466a73aae1ee0eac545e00802b4
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Tue May 11 11:45:02 2021 +0100
Check if variation data is iterable before formatting (https://github.com/woocommerce/woocommerce-blocks/pull/4182)
commit 4279db88057e83eff8af077a96eeb19dd247a8d2
Author: Darren Ethier <darren@roughsmootheng.in>
Date: Mon May 10 11:21:01 2021 -0400
update package-lock (version change mostly)
commit f71b24ad0f634c2cb8aeac8ae80e0ccd139a4fcd
Author: Darren Ethier <darren@roughsmootheng.in>
Date: Mon May 10 11:16:58 2021 -0400
update version string to dev version
commit 7f9c1b2913f9c06f4d755519ef2689c56703a2c0
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon May 10 11:14:05 2021 -0400
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>
commit 80c27354e1eb83d027eb9670aed59885c2097d3d
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon May 10 14:38:04 2021 +0200
Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4184)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 90074cf871d8691d0adf5808e59a75b9ace98fa7
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Mon May 10 10:03:30 2021 +0100
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
commit 3f1be394d076bdc2a407c05d1fbf290a17c55c43
Author: Albert Juhé Lluveras <contact@albertjuhe.com>
Date: Mon May 10 10:00:14 2021 +0200
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
commit ed7eded4d7134d1b69d0fd206cd1315fd9d2d40f
Author: Darren Ethier <darren@roughsmootheng.in>
Date: Fri May 7 16:39:28 2021 -0400
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.
commit 2be9a4ea4405d5df427f4e97025aa5433019b72f
Author: Raluca Stan <raluca.stan@automattic.com>
Date: Fri May 7 15:50:55 2021 +0200
Add lodash as a devDependency (https://github.com/woocommerce/woocommerce-blocks/pull/4179)
commit 69b3679a7e585abc8a5068df3bd2457714149939
Author: Seghir Nadir <nadir.seghir@gmail.com>
Date: Wed May 5 12:59:30 2021 +0100
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
commit 214014750c0a1414e89ce47d84754d278e5a164f
Author: Raluca Stan <raluca.stan@automattic.com>
Date: Wed May 5 13:52:27 2021 +0200
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
commit f8d9b9084c091f97b281f58a64f98622765a80e3
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 5 10:08:45 2021 +0000
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>
commit 2391a40ab24439b14f56d1d6416beaf0c2d94c53
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Wed May 5 10:41:48 2021 +0100
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>
commit f4af89b2fce203c4f173845244724f58669a04f9
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 5 08:10:24 2021 +0000
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>
commit 6c9e786c407fd1bd6861bde3b435cec0663b8399
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 5 03:31:52 2021 +0000
Update dependency @types/react to v16.14.6 (https://github.com/woocommerce/woocommerce-blocks/pull/4171)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 3ba4d9ed6a46f3700a7190d09eff2ba53d1bcb60
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 5 02:23:13 2021 +0000
Update babel monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/4169)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 35f71df36f92028cfb880e314623b33c077a384d
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue May 4 14:07:05 2021 +0100
Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4163)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 4c65211b375e40691aeea7273eec34f3f54a0b3b
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 14:09:28 2021 +0000
Coped package-lock.json from trunk
commit 703cb65efb8fd4ced58234d5174dc198e225e07a
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 14:00:32 2021 +0000
Reverted package-lock.json ( downgraded node version to 12 )
commit 41dfd79715d4b4f1e5cebd0e7dccfc1573ba4d36
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 11:12:45 2021 +0000
Pre pull request clean up code
commit 75fc62e99ed63389c158352b73ae898c986d92bd
Author: grogou <eriktadevosyan07@gmail.com>
Date: Tue Apr 27 13:03:24 2021 +0000
Added Stock Status filter
commit e7bd0e6e1e171a041ac17b8b11abc812585f7645
Author: grogou <eriktadevosyan07@gmail.com>
Date: Fri Aug 20 16:53:56 2021 +0400
Escape statuses for sql query
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit 29c8493aaeb6dca6b3cf5e1954a39564ea304d87
Author: grogou <eriktadevosyan07@gmail.com>
Date: Fri Aug 20 16:53:18 2021 +0400
Allow custom stock statuses
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit 63ecd04bf09a53049bdb10d3919acf6ced7ead8a
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 28 06:22:04 2021 +0000
Bring back removed css
commit 27e0233cb67f60f650856455a0ff32c6d73c35e3
Author: grogou <eriktadevosyan07@gmail.com>
Date: Tue Jul 27 23:35:15 2021 +0400
Update assets/js/blocks/stock-filter/block.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit 136c32ddd3f485be5aeab274c675743a235a8c25
Author: groguo <eriktadevosyan07@gmail.com>
Date: Thu Jul 15 06:50:06 2021 +0000
Fixed preview part for stock and attribute filters
commit ef89751b634bf223f065067f47f726b662d75ef3
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 20:15:05 2021 +0400
Update index.js
commit a63dbcef7058ffd858a71931b6fc2ead0583ae03
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:43:06 2021 +0000
Review suggestion changes
commit 6b0f5d2206d010c1822ab7eaf4edea9a0b79526d
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:40:52 2021 +0000
Linter fix
commit 791b38b31782367864e1bb8f26716b7fef0e63a8
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:37:41 2021 +0000
Removed hideOutOfStock from AllProducts and realized hide out of stock functionality from SQL query
commit 1a7a002d5eac271c6f2331e3e66411f3127282b1
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:21:51 2021 +0000
Created new component for Filters elements labels
commit d9b7fae24d4235a0f8f424e7e74cd250e62bc897
Author: aaron <aaron.yor@gmail.com>
Date: Wed Jun 2 11:57:06 2021 +0400
Fix label includ path
commit 5311584362dca4c6e5a91de5fdfbff29297799ea
Merge: 92a0da3f 1b87589f
Author: aaron <aaron.yor@gmail.com>
Date: Wed Jun 2 11:52:48 2021 +0400
Merge remote-tracking branch 'core/trunk' into add/stock-filter
# Conflicts:
# package-lock.json
commit d8e6dabaa3282855c6c91c908d6a1443ea9732f1
Merge: 583113e32b695215
Author: grogou <eriktadevosyan07@gmail.com>
Date: Fri Apr 30 12:28:09 2021 +0400
Merge pull request woocommerce/woocommerce-blocks#1 from woocommerce/trunk
Fork update
commit 92a0da3f8c37aa46ce2330cb8095ab7077d01555
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 14:09:28 2021 +0000
Coped package-lock.json from trunk
commit ae0d12b57a5be6f1a39577404c017174489345f8
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 14:00:32 2021 +0000
Reverted package-lock.json ( downgraded node version to 12 )
commit 5e0c7f9fe36bc9358743b7af7d9e47ce66f8ac08
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 11:12:45 2021 +0000
Pre pull request clean up code
commit 105b3f75a2b42f12f6924091f51bfa91c84b4984
Author: grogou <eriktadevosyan07@gmail.com>
Date: Tue Apr 27 13:03:24 2021 +0000
Added Stock Status filter
commit 4fccfd88998fde20b603d99d9866d3cb08cf7bf4
Merge: 8012b2b4 e7bd0e6e
Author: groguo <eriktadevosyan07@gmail.com>
Date: Fri Aug 20 13:17:42 2021 +0000
Merge from trunk
commit 8012b2b40e95b90e507698de677fba059ca9ef0a
Author: grogou <eriktadevosyan07@gmail.com>
Date: Fri Aug 20 16:53:56 2021 +0400
Escape statuses for sql query
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit 304348aeb5448153ad3365ff09ca37f265af87cc
Author: grogou <eriktadevosyan07@gmail.com>
Date: Fri Aug 20 16:53:18 2021 +0400
Allow custom stock statuses
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit b2f01e4ed6738ef3091afbac7d4131c984b33bc7
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 28 06:22:04 2021 +0000
Bring back removed css
commit caafffda5de6d3f31b817ab4886847958f693e24
Author: grogou <eriktadevosyan07@gmail.com>
Date: Tue Jul 27 23:35:15 2021 +0400
Update assets/js/blocks/stock-filter/block.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit ae381de8aa49d0b16d2dabff7b6ecffedc511460
Author: groguo <eriktadevosyan07@gmail.com>
Date: Thu Jul 15 06:50:06 2021 +0000
Fixed preview part for stock and attribute filters
commit 7df5feab0a33f93786a29a625c1f27a4737c25bc
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 20:15:05 2021 +0400
Update index.js
commit af0294ce6a21a0032c7eeb00fe986eddda188574
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:43:06 2021 +0000
Review suggestion changes
commit 16da25340fd7438e0fedd62b3e8b52bc33b80852
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:40:52 2021 +0000
Linter fix
commit 594125a68c5c0d854418d5f3e76fb0e18c23b0a4
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:37:41 2021 +0000
Removed hideOutOfStock from AllProducts and realized hide out of stock functionality from SQL query
commit 94a54e3c7c8cb94323d41a11c6bb603d0648792e
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:21:51 2021 +0000
Created new component for Filters elements labels
commit e3d7fb2aad4b123693f0104c2ffd9af2a1273900
Author: aaron <aaron.yor@gmail.com>
Date: Wed Jun 2 11:57:06 2021 +0400
Fix label includ path
commit c9e3d02d5bf03614cbfd2d17ec1558dacc3252f1
Author: Seghir Nadir <nadir.seghir@gmail.com>
Date: Tue Jun 1 09:46:02 2021 +0100
remove usage of mustBeString (https://github.com/woocommerce/woocommerce-blocks/pull/4294)
commit b8923390e5d5433ef2c8a14891684b907051cd7e
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon May 31 16:07:59 2021 +0100
Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4290)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 6de68e41e2053a79cdce3e9d820c9b5656072685
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Thu May 27 12:57:49 2021 +0100
Check if product can be added to cart before adding ajax class to button (https://github.com/woocommerce/woocommerce-blocks/pull/4265)
commit a1ccaf4143dd9cd86f0f88ce956bcf7edb5e419a
Author: Thomas Roberts <thomas.roberts@automattic.com>
Date: Wed May 26 16:10:43 2021 +0100
Update version for next release
commit 24f882f5d53776abe2ee6440d68485083b5a8340
Author: Thomas Roberts <thomas.roberts@automattic.com>
Date: Wed May 26 15:42:21 2021 +0100
Bumping version strings to new version.
commit e1fd0825b72d7cc87c6f26329359cc39278cc760
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Wed May 26 15:31:37 2021 +0100
Update link to testing zip
commit 35521e54b756bf265cf6d61437cd5f55629fc2d4
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Wed May 26 14:04:42 2021 +0100
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
commit 7f3a1e629f04dcb71d3fb4313b3012aef13feb5f
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 26 08:52:31 2021 +0000
Update dependency downshift to v6.1.3 (https://github.com/woocommerce/woocommerce-blocks/pull/4272)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 593ef2b07f71341b3d0fc143876c24a4d50a64fb
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 26 05:04:55 2021 +0000
Update dependency @types/react to v16.14.8 (https://github.com/woocommerce/woocommerce-blocks/pull/4270)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 21f16d6d4ef10ada3f1631f72b4fb7dec1f4af72
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 26 03:47:54 2021 +0000
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>
commit 444256ea70c8b9ac89b4f4d5913396da9f4334cd
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 26 02:30:17 2021 +0000
Update dependency @types/lodash to v4.14.170 (https://github.com/woocommerce/woocommerce-blocks/pull/4269)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 5f9df572aed0b07606c7a4e5b684122a48862f94
Author: Thomas Roberts <thomas.roberts@automattic.com>
Date: Tue May 25 15:31:03 2021 +0100
Create 5.2.0 testing notes
commit 45abda651a668ddc4b1d36e8c76cf19d365d94c8
Author: Thomas Roberts <thomas.roberts@automattic.com>
Date: Tue May 25 14:52:37 2021 +0100
Update package.json
npm ci was not working correctly this will fix it.
commit c3daa6ce4c71b956e08200442626a0e29a3e5daf
Author: Thomas Roberts <thomas.roberts@automattic.com>
Date: Tue May 25 14:26:32 2021 +0100
Update changelog and WC tested up to
commit 61283092b32425450f4450d5224e156d24aa38ba
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Thu May 20 17:56:56 2021 +0100
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.
commit 193267b041e8e0fb9fe89bb68ad972b1f5b4b941
Author: Mike Jolley <mike.jolley@me.com>
Date: Tue May 25 12:49:13 2021 +0100
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>
commit c15e5123e47952f445fe159522f72cef290c9276
Author: Seghir Nadir <nadir.seghir@gmail.com>
Date: Tue May 25 10:46:28 2021 +0100
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
commit e2cf0baad0ee91f892a1cb1919ad0edbab0122c3
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Tue May 25 08:43:46 2021 +0100
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
commit 9b44c884fc68d81d6211f40f13409fac8503c2e3
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon May 24 18:14:37 2021 +0100
Update dependency @octokit/graphql to v4.6.2 (https://github.com/woocommerce/woocommerce-blocks/pull/4230)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 4973132a90ddc88e075d6d421c8677cf032c3264
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon May 24 16:40:05 2021 +0100
Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4253)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit b7eabf54bad4b7e08c7f4ef1484f7fea7ab64f20
Author: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
Date: Fri May 21 09:53:46 2021 +0200
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
commit 47556b9a39125423409dea8a3ae8c8ac34396fc0
Author: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
Date: Fri May 21 09:52:27 2021 +0200
Block Widgets: hide All Products and Filter blocks in the Customizer (https://github.com/woocommerce/woocommerce-blocks/pull/4225)
commit 208b21281763652bdcddb7390dfe955bddff4728
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Thu May 20 17:56:56 2021 +0100
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
commit 55f5bfd8cd720022380de1e811e8d1abb622209b
Author: Mike Jolley <mike.jolley@me.com>
Date: Thu May 20 15:07:12 2021 +0100
Create LICENSE (https://github.com/woocommerce/woocommerce-blocks/pull/4235)
commit 0b10f75ddf3d01c837f466f9d3f85dbc760b3d7b
Author: Albert Juhé Lluveras <contact@albertjuhe.com>
Date: Thu May 20 10:58:59 2021 +0200
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
commit 587be17d62db7b956c980fac4766456511243e10
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Wed May 19 10:55:15 2021 +0100
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>
commit 731c75e03100695131b4ec6afa8994e6cf9f4c00
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 19 07:36:46 2021 +0000
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>
commit ef6ad8882310dff6d1aa4ae847289acddc0dfebb
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 19 04:36:44 2021 +0000
Update dependency @types/lodash to v4.14.169 (https://github.com/woocommerce/woocommerce-blocks/pull/4234)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 096463ea4bf1bddc7d61e1b04320886ee2f21770
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 19 03:46:21 2021 +0000
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>
commit 8722839350e6725ea80da994bb8387966b75061c
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 19 02:48:45 2021 +0000
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>
commit 2f7e8edfebff59eeeeeb18d65fd658d5f432419e
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 19 01:32:34 2021 +0000
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>
commit 72e851a28c88653204ed8e4eff10c6bb2cb40c68
Author: Raluca Stan <raluca.stan@automattic.com>
Date: Tue May 18 15:09:30 2021 +0200
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.
commit 7b7119cfb0cfce5e1718804ca590a6b161d555f2
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue May 18 11:27:27 2021 +0100
Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4212)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 5f84e7dabbc788b769646a9bcba5a15a57b03e33
Author: Mike Jolley <mike.jolley@me.com>
Date: Tue May 18 10:37:31 2021 +0100
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
commit fccc72bedb0f320995f62ee5d91b1c8e2e9c2fa1
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Tue May 18 09:10:31 2021 +0100
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
commit 0b91fbeac282f729dbc8e8056d2e934392f401c0
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Mon May 17 15:00:57 2021 +0100
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>
commit 0464883ec668332db5a6399569880e7b3fa3ab3f
Author: Albert Juhé Lluveras <contact@albertjuhe.com>
Date: Sun May 16 20:00:06 2021 +0200
Don't default to fallback in getSetting if value is falsy (https://github.com/woocommerce/woocommerce-blocks/pull/4202)
commit f95f12d3215caf30f1f49e1d29c5826156914a33
Author: Mike Jolley <mike.jolley@me.com>
Date: Sun May 16 18:59:32 2021 +0100
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
commit db589e7e7f4809504b1aa83144116506a50bdd38
Author: Raluca Stan <raluca.stan@automattic.com>
Date: Sun May 16 19:41:34 2021 +0200
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>
commit b9b66f93adb5b0fdc22fc4ed9560eb6e2c1c72d9
Author: Mike Jolley <mike.jolley@me.com>
Date: Thu May 13 11:49:39 2021 +0100
Set order status to pending when no payment is needed (https://github.com/woocommerce/woocommerce-blocks/pull/4186)
commit 8ed63f765418ae8e7b2ee58004b4a9b1306eaeef
Author: Mike Jolley <mike.jolley@me.com>
Date: Thu May 13 11:21:21 2021 +0100
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
commit 90499cb3191137264ffde07cf082db8c4d6f77de
Author: Mike Jolley <mike.jolley@me.com>
Date: Thu May 13 11:20:37 2021 +0100
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
commit a813c931bb5f85f139429aa3bf094b2327a7f8cd
Author: Albert Juhé Lluveras <contact@albertjuhe.com>
Date: Thu May 13 12:14:15 2021 +0200
Set default store currency to USD in tests (https://github.com/woocommerce/woocommerce-blocks/pull/4203)
commit b1408933f75ca47dc39335984bfc1fe570a72aaa
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu May 13 10:16:04 2021 +0200
Update dependency config to v3.3.6 (https://github.com/woocommerce/woocommerce-blocks/pull/4195)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit d68bb11bb56d882f8755162ae6657cad76dfd16f
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu May 13 10:15:35 2021 +0200
Update dependency cssnano to v4.1.11 (https://github.com/woocommerce/woocommerce-blocks/pull/4196)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit beadbab90fe0813c0f36cc25a9e0b14a8f8e96d2
Author: Seghir Nadir <nadir.seghir@gmail.com>
Date: Wed May 12 13:32:05 2021 +0100
Add cart data to filters (https://github.com/woocommerce/woocommerce-blocks/pull/4164)
* add cart data to filters
* add extensions back to footer filter
commit c10fdf26bc37b1efb6b22d045e3aed72f5541a2a
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 12 13:04:44 2021 +0100
Pin dependency lodash to 4.17.21 (https://github.com/woocommerce/woocommerce-blocks/pull/4193)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit f92aac55f1a6fd67fba3885311ec74bcdb41034e
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 12 13:04:13 2021 +0100
Update dependency chalk to v4.1.1 (https://github.com/woocommerce/woocommerce-blocks/pull/4194)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 27cff5109889c0abca24124c1dabcb0b78da4929
Author: Mike Jolley <mike.jolley@me.com>
Date: Wed May 12 13:02:26 2021 +0100
Should be using value rather than name (https://github.com/woocommerce/woocommerce-blocks/pull/4187)
commit 560972a7eb306b6a27c298b7e3218df92a848e79
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Tue May 11 13:57:02 2021 +0100
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
commit 556ceb4b8a222466a73aae1ee0eac545e00802b4
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Tue May 11 11:45:02 2021 +0100
Check if variation data is iterable before formatting (https://github.com/woocommerce/woocommerce-blocks/pull/4182)
commit 4279db88057e83eff8af077a96eeb19dd247a8d2
Author: Darren Ethier <darren@roughsmootheng.in>
Date: Mon May 10 11:21:01 2021 -0400
update package-lock (version change mostly)
commit f71b24ad0f634c2cb8aeac8ae80e0ccd139a4fcd
Author: Darren Ethier <darren@roughsmootheng.in>
Date: Mon May 10 11:16:58 2021 -0400
update version string to dev version
commit 7f9c1b2913f9c06f4d755519ef2689c56703a2c0
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon May 10 11:14:05 2021 -0400
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>
commit 80c27354e1eb83d027eb9670aed59885c2097d3d
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon May 10 14:38:04 2021 +0200
Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4184)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 90074cf871d8691d0adf5808e59a75b9ace98fa7
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Mon May 10 10:03:30 2021 +0100
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
commit 3f1be394d076bdc2a407c05d1fbf290a17c55c43
Author: Albert Juhé Lluveras <contact@albertjuhe.com>
Date: Mon May 10 10:00:14 2021 +0200
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
commit ed7eded4d7134d1b69d0fd206cd1315fd9d2d40f
Author: Darren Ethier <darren@roughsmootheng.in>
Date: Fri May 7 16:39:28 2021 -0400
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.
commit 2be9a4ea4405d5df427f4e97025aa5433019b72f
Author: Raluca Stan <raluca.stan@automattic.com>
Date: Fri May 7 15:50:55 2021 +0200
Add lodash as a devDependency (https://github.com/woocommerce/woocommerce-blocks/pull/4179)
commit 69b3679a7e585abc8a5068df3bd2457714149939
Author: Seghir Nadir <nadir.seghir@gmail.com>
Date: Wed May 5 12:59:30 2021 +0100
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
commit 214014750c0a1414e89ce47d84754d278e5a164f
Author: Raluca Stan <raluca.stan@automattic.com>
Date: Wed May 5 13:52:27 2021 +0200
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
commit f8d9b9084c091f97b281f58a64f98622765a80e3
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 5 10:08:45 2021 +0000
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>
commit 2391a40ab24439b14f56d1d6416beaf0c2d94c53
Author: Thomas Roberts <5656702+opr@users.noreply.github.com>
Date: Wed May 5 10:41:48 2021 +0100
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>
commit f4af89b2fce203c4f173845244724f58669a04f9
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 5 08:10:24 2021 +0000
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>
commit 6c9e786c407fd1bd6861bde3b435cec0663b8399
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 5 03:31:52 2021 +0000
Update dependency @types/react to v16.14.6 (https://github.com/woocommerce/woocommerce-blocks/pull/4171)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 3ba4d9ed6a46f3700a7190d09eff2ba53d1bcb60
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed May 5 02:23:13 2021 +0000
Update babel monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/4169)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 35f71df36f92028cfb880e314623b33c077a384d
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue May 4 14:07:05 2021 +0100
Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4163)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit 4c65211b375e40691aeea7273eec34f3f54a0b3b
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 14:09:28 2021 +0000
Coped package-lock.json from trunk
commit 703cb65efb8fd4ced58234d5174dc198e225e07a
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 14:00:32 2021 +0000
Reverted package-lock.json ( downgraded node version to 12 )
commit 41dfd79715d4b4f1e5cebd0e7dccfc1573ba4d36
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 11:12:45 2021 +0000
Pre pull request clean up code
commit 75fc62e99ed63389c158352b73ae898c986d92bd
Author: grogou <eriktadevosyan07@gmail.com>
Date: Tue Apr 27 13:03:24 2021 +0000
Added Stock Status filter
commit e7bd0e6e1e171a041ac17b8b11abc812585f7645
Author: grogou <eriktadevosyan07@gmail.com>
Date: Fri Aug 20 16:53:56 2021 +0400
Escape statuses for sql query
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit 29c8493aaeb6dca6b3cf5e1954a39564ea304d87
Author: grogou <eriktadevosyan07@gmail.com>
Date: Fri Aug 20 16:53:18 2021 +0400
Allow custom stock statuses
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit 63ecd04bf09a53049bdb10d3919acf6ced7ead8a
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 28 06:22:04 2021 +0000
Bring back removed css
commit 27e0233cb67f60f650856455a0ff32c6d73c35e3
Author: grogou <eriktadevosyan07@gmail.com>
Date: Tue Jul 27 23:35:15 2021 +0400
Update assets/js/blocks/stock-filter/block.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
commit 136c32ddd3f485be5aeab274c675743a235a8c25
Author: groguo <eriktadevosyan07@gmail.com>
Date: Thu Jul 15 06:50:06 2021 +0000
Fixed preview part for stock and attribute filters
commit ef89751b634bf223f065067f47f726b662d75ef3
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 20:15:05 2021 +0400
Update index.js
commit a63dbcef7058ffd858a71931b6fc2ead0583ae03
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:43:06 2021 +0000
Review suggestion changes
commit 6b0f5d2206d010c1822ab7eaf4edea9a0b79526d
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:40:52 2021 +0000
Linter fix
commit 791b38b31782367864e1bb8f26716b7fef0e63a8
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:37:41 2021 +0000
Removed hideOutOfStock from AllProducts and realized hide out of stock functionality from SQL query
commit 1a7a002d5eac271c6f2331e3e66411f3127282b1
Author: groguo <eriktadevosyan07@gmail.com>
Date: Wed Jul 14 15:21:51 2021 +0000
Created new component for Filters elements labels
commit d9b7fae24d4235a0f8f424e7e74cd250e62bc897
Author: aaron <aaron.yor@gmail.com>
Date: Wed Jun 2 11:57:06 2021 +0400
Fix label includ path
commit 5311584362dca4c6e5a91de5fdfbff29297799ea
Merge: 92a0da3f 1b87589f
Author: aaron <aaron.yor@gmail.com>
Date: Wed Jun 2 11:52:48 2021 +0400
Merge remote-tracking branch 'core/trunk' into add/stock-filter
# Conflicts:
# package-lock.json
commit d8e6dabaa3282855c6c91c908d6a1443ea9732f1
Merge: 583113e32b695215
Author: grogou <eriktadevosyan07@gmail.com>
Date: Fri Apr 30 12:28:09 2021 +0400
Merge pull request woocommerce/woocommerce-blocks#1 from woocommerce/trunk
Fork update
commit 92a0da3f8c37aa46ce2330cb8095ab7077d01555
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 14:09:28 2021 +0000
Coped package-lock.json from trunk
commit ae0d12b57a5be6f1a39577404c017174489345f8
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 14:00:32 2021 +0000
Reverted package-lock.json ( downgraded node version to 12 )
commit 5e0c7f9fe36bc9358743b7af7d9e47ce66f8ac08
Author: grogou <eriktadevosyan07@gmail.com>
Date: Wed Apr 28 11:12:45 2021 +0000
Pre pull request clean up code
commit 105b3f75a2b42f12f6924091f51bfa91c84b4984
Author: grogou <eriktadevosyan07@gmail.com>
Date: Tue Apr 27 13:03:24 2021 +0000
Added Stock Status filter
* Tidy up bootstap so it uses autoloaders and works with the known plugin paths
* eslint ignore woocommerce bin
* Use WC from bin in wp-env
* Git ignore woocommerce in bin
* Remove reliance on core framework across phpunit tests
* Simplify bootstrap - since test framework is no longer required, there is no need to pull in woo from github
* Remove unused configs
* Update CI
* Implement PHPunit Polyfill
* Abstract the test case
* Update lock
* remove chown
* experiment: try sudo
* move phpversion to first run
* Remove 7.0 tests :(
* test plugin override for 5.5 test
* Use dev version
* Fix formatting
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
* Add Extensibility info to Store API readme
* Update src/StoreApi/README.md
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Replace new lines with empty strings when outputting catgeory list
This is because br tags are being added because of linebreaks in the string. If we replace the linebreaks with empty strings they won't be converted into br elements.
* Add parentheses around product count
* Remove spaces from around title
* Remove parentheses from product count
* Update documentation to describe new snackbar filtering
* Remove use of personal pronouns
* Revert "Remove use of personal pronouns"
This reverts commit a3e30310c1a4714c758d5dce5f87960d570477f1.
* Change PlaceOrderButton to TypeScript
* Change type on Icon to allow attributes from image/svg elements
* Convert PaymentMethodLabel to TypeScript
* Add PaymentMethodIcon type
* Update utils (normalizeIconConfig) to TypeScript
* Update CheckoutButton to TypeScript
* Add types folder to tsconfig
* Convert PaymentMethodIcon to TypeScript
* Convert PaymentMethodIcons to TypeScript
* Convert common-icons to TypeScript
* Extract productPriceValidation out of the component
* Extract checkout filter args outside of component
* Remove unnecessary default fallback
* Mark ProductName optional props as not required
* Use an empty array constant for the filteredNotices default value when there are no notices
* Refactor Panel component so hidden contents are not rendered
* Prevent extensions changing on each call of __experimentalApplyCheckoutFilter if it was an empty object
* Add missing line break
* Update tests
* Memoize cartErrors from useStoreCart
* Implement memoization to other selectors
* Use EMPTY_ARRAY in more cases
* Create getArrayOrEmptyConstant function
* Remove DEFAULT_EMPTY_ARRAY constant and use EMPTY_ARRAY instead
* Wrap removeItem into useCallback
* Fix tests
* Do not default to empty array/object for values that should exist and use different constant for empty values
* Type two empty array constants from default-states.ts
* Add combobox control
* Implement in country and state
* mobile styling
* styling across themes
* Remove validated select component
* Use focus-within
* Update tests
* Use @wordpress/compose
* Move field clearing to effect hook
* Patch combobox component
PR https://github.com/WordPress/gutenberg/pull/33928
* patch package after install
* update package
* Prevent autofill handling impacting manual input
* Add todo
* combo requires option to be selected
The `StoreNoticesContainer` component is using an incorrect class name for a "success" notice and also applying the general `woocommerce-message` (what's used by WC core for the "success" notice) to all notices. In some instances, this could cause the general `woocommerce-message` styles to be applied instead of the `woocommerce-error` or `woocommerce-info` styles.
This PR changes the use of `woocommerce-success` to `woocommerce-message` and prevents `woocommerce-message` from being applied to all notices.
* Enable re-select category for featured category block
* update shop now button url on re-select
* Update comments
Co-authored-by: Albert Juhé Lluveras <aljullu@gmail.com>
Co-authored-by: Albert Juhé Lluveras <aljullu@gmail.com>
* Update storybook to 6.3.6
* @storybook/addon-knobs
* Remove need for wordpress-compose imports
This functionality exists in WP 5.5 so we don't need to import the package any more.
* Update to latest non 17x packages
* Composer update
* Fix for @babel/plugin-proposal-nullish-coalescing-operator and spinner style
* onSelect was called before init
* Add back env
* Update locks
* Revert browserlist config increase (ie11 support dropped needs separate discussion)
* update locks
* SVG can come from the external
* Import from components package where possible (5.5 has Gutenberg 9.2.0) and revert component package version change
* Revert component imports. Import from wordpress-components in the frontend context. This removes `wp-components` dependency from all -frontend asset files.
* update README files with version requirements
* update phpcs config
* update default environment for tests locally
* update workflows to only test against versions matching new policy
* update plugin header for new version policy
* restore older WP version support in E2E tests and PHPCS
I realized that we might still want to test against L2 WP versions in our E2E tests until those tests can be moved to WC core. While the feature plugin is L0, we still need to support L2 for existing features that are already surfaced in the WooCommerce plugin package.
Also with PHPCS if there are fixes to older things in the codebase, we will need to preserve the usage of L2 friendly (back-compat) code.
* add detection of Woo Core version to bootstrap
* update version used in phpunit tests
* add links to version policy update post
* restore 5.5.1 for Woo Core version
Getting errors with 5.5.2 - not sure what's going on but might be the tag isn't available as expected for 5.5.2 maybe?
* switch to hardcoded version header reference
PHPUNIT was tripping on this for some reason.
* remove older WP version e2e test workflows
* fix phpunit tests for new woo test suite
Woo Core now uses a container and has some mocks that are used in some legacy test helpers.
* remove explicit set WOO_VERSION for phpunit tests.
This should default to latest for the GH workflow runs.
* Update release PR template.
Add some explicit instructions around updating required WP and WC versions at time of release.
* use latest WOO_VERSION in .env
* some improvements to reduce the things needing updated
* remove extraneous code
* Add some more checklist items to release PR templates
* remove unnecessary conditional
* remove is-dismissible css classes
* Improve clarity of error messaging
* Update README.md
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* remove checklist items about versions for patch releases
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* Remove paypal from fixture data
* Fix scroll hoc tests
* Missing return type in cart causing TS error
* update e2e utils
* Replace searchForBlock method in e2e utils
* Single block update insert block
* Use insertBlockDontWaitForInsertClose
* Change snackbarNotices filter to snackbarNoticeVisibility
* Add deprecation notice to snackbarNotices
* Rename noticesToDisplay to visibleNotices
* Update link in deprecated message
* Add notice if terms is unchecked when processing checkout
* Type StoreNotices and correctly scroll to error
* Checkbox error styles
* Hide input fields are invalid notice - validation notices are inline
* Scroll to error inputs
* Working inline validation for terms
* Add todo for exposing data
* update todo
* ensure checkbox is enabled before validating
* Duplicate checkout block
* Contact information block
* form step block
* shipping address block
* Setup atomic blocks
* Container structure
* More formal steps rather than generic form step
* Add billing and shipping forms
* add checkout actions block
* add order note block
* Add order summary
* add payment block
* Add inspector controls for address fields
* frontend WIP
* move attributes
* wrap shipping with form step
* PhoneNumber to typescript
* Remove column block
* form steps
* move payment logic to frontend
* Express block
* inline payment block
* Add shipping method block
* Render inner blocks (not standalone blocks) and add classes to Atomic Block list on php side
* lazy again
* Add more wrappers from old frontend file
* add layout
* Checkout wrappers were missing
* Enqueue payment methods for new block
* Add missing classnames
* Move shipping as billing state to context provider
* express payments rendering
* try/block-registry
* Remove atomic components (unused)
* Fix attribute persistance due to template locking
* Fix shipping display when not needed
* Set correct parent blocks for inner blocks
* pass data to blocks
* demo/newsletter
* Skeleton styling
* only apply styles to loading state for now
* shipping method block frontend
* rename express block
* lock template
* fix ts warning for __webpack_public_path__
* Refactor to avoid duplicating atomic block logic
* remove changes in save method
* Add zones and shipping methods to the sidebar for the shipping inner block
Closeswoocommerce/woocommerce-blocks#4320
* Fix script handles
* Fix method display when there are none
* Add shipping phone
* Add phone to api and sync with billing correctly
* Clear hidden fields on load
* fix requirePhoneField property
* Enable shipping and billing phone fields
* readonly field support
* Handle context attributes
* Fix createInterpolateElement usage
* add totalswrapper
* Implement Terms and Conditions block for Checkout i2 (https://github.com/woocommerce/woocommerce-blocks/pull/4436)
* Setup atomic blocks
* frontend WIP
* Express block
* try/block-registry
* Set correct parent blocks for inner blocks
* Skeleton styling
* Refactor to avoid duplicating atomic block logic
* add block locking
* add terms and conditions block
* hardcore settings image
* lock blocks from being deleted
* hide original checkout block
* mark blocks as side effectful
* move variations to block register function
* prevent core checkout blocks from needlessly showing in the inserter
* enable checkout i1
* fix broken rebase
* move save back
* Localise default text
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* Add add-hoc Block locking from WooCommerce Blocks side. (https://github.com/woocommerce/woocommerce-blocks/pull/4454)
* add locking
* use subscribe instead
* fix condition
* add locking to blocks
* check if the item is not a text field
* Tidy up hacks CSS class handling
* Fix error if node is undefined
* Hide menu when move is disabled
* update package lock
* Add todo and fix issue where selector returns null
* split todos
* move todo
* edit comment
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* Un-disable the billing checkbox in the editor (https://github.com/woocommerce/woocommerce-blocks/pull/4457)
* Add missing Slot fill provider on frontend
Fixeswoocommerce/woocommerce-blocks#4441 by adding the slot fill provider to the checkout-i2 block.
* Use column style appender
* Add padding/styles to actions
* Add/update icon library
* Multiline checkbox alignment
* Icons and copy changes for i2 blocks
* Add terms by default
* Add notice if text is missing links (https://github.com/woocommerce/woocommerce-blocks/pull/4466)
* Swap variations for toggle
* Add payment settings to inspector
* Update package lock
* Add inline docs to block registry
* Add inner block areas below each form step.
This does not include the form step contents, just adds inner blocks after existing content. Moving content within the inner block area is a separate discussion.
This closeswoocommerce/woocommerce-blocks#4306
* Sample block registration + docs
* Add tests for registerCheckoutBlock
* Fix lazy component detection in tests
* Add basic transform between i1 and i2
* remove template lock todo
* Update scroll to top hoc
* Move shared settings to new context providers
Closeswoocommerce/woocommerce-blocks#4472
* Remove readonly field support (unused)
* Remove context code
* Experimental
* remove invalid typedef
* FIx scrolling on validation due to misplaced context provider
* Update assets/js/base/context/providers/cart-checkout/checkout-state/index.tsx
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* Update comment to remove reference to phone
* Update packages/checkout/blocks-registry/README.md
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* Rename ScrollToTopComponent
* Add explicit list of expectedType in TypeScript definition
* Add todo to remove custom shipping phone handling
* Remove dangerouslySetInnerHTML in External Link Card Component
* Add ExternalLinkCard to storybook
* update todo wording
* Refactor withScrollToTop to remove useCallback and use typescript
* Support children on CheckboxControl, with added Typescript
* Spread getRegisteredBlocks return value
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* Add documentation for Formatters
* Add link to formatters docs
* Add link to main README
* Add anchors to document
* Add code exaple of getting formatters
* Change CurrencyFormatter return into a table
* Fix table formatting issue and ensure arguments are all in tables
* Add styles to stop totals items being padded inside panels
* Remove extra linebreak
* Use padding shorthand
* Move style into already established sidebar selector
* Make payment method icons display well even if theme tries to override
* Update flex justification for alignment styles
* Ensure payment method icons are displayed correctly in Checkout
* Remove center from object-position
* Empty commit for release pull request
* Update readme.txt with the changelog for 5.5.0
* Add testing notes
* Bumping version strings to new version.
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Michael P. Pfeiffer <michael@cssconf.eu>
* Fixed $tax_query being set to an empty array
* Remove whitespace causing PHP coding standards test to fail
* Cleanup: add line break
Co-authored-by: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
* Add StoreNoticesWithSnackbarProvider component
* Remove snackbar from regular StoreNoticesProvider
* Create useStoreNoticesWithSnackbar hook
* Remove anything snackbar related from StoreNoticesContext
* Remove snackbar styles from store-notices
* Make checkout use store notices with snackbar context
* Move snackbar notices container to new directory
* Make useStoreCartCoupons use the notices with snackbar context
* Update tests
* Rename path and remove addSnackbarNotice
* Use StoreSnackbarNoticesProvider in Cart and Checkout blocks
* Update snackbar tests
* Update paths
* Update tests
* Create store notice provider for snackbar notices only
* Update context functions to include the word snackbar
* Change nesting in checkout
* Remove unused file
* Add TotalsWrapper component and associated styling
* Add TotalsWrapper around the subtotal, fees and discount
* Remove margins/paddings/borders from sidebar elements
This is to allow TotalsWrapper to be the component responsible for handling spacing and borders.
* Update styles to allow components to be wrapped in TotalsWrapper
* Move TotalsWrapper to checkout package
* Wrap all parts of Cart sidebar in TotalsWrapper
* Remove border from coupon panel
* Add has-bottom-border option to TotalsWrapper
* Wrap checkout sidebar components in TotalsWrapper
* Remove border/padding from order summary
* Add hasValidFills function
This will be used to check if a Slot has any fills that return truthy values.
* Remove borderSize and hasBottomBorder props from TotalsWrapper
* Wrap Slots in TotalsWrapper
* Update hasValidFills to check length of array
* Update tests and snapshots
* Only render tax totals if tax is more than 0
* Remove snackbar filtering
* Revert "Move Button and Label components to `@woocommerce/blocks-checkout` package (https://github.com/woocommerce/woocommerce-blocks/pull/4222)"
This reverts commit 983ce48cad.
* Export Label and Button from the wc-blocks-checkout package
* Reorder exports
This is so the diff is smaller in the PR
* Revert "Remove snackbar filtering"
This reverts commit 8e598436e871aa56f89740fbe6fbe522fd02db1d.
* Rework coupon filters to not be applied individually
* Add a `text` property to the coupons in the cart
This is needed to allow extensions to change the text without affecting the code.
* Output coupon text instead of code
* Add coupons filter documentation
* Add deprecation warning when extension uses couponName filter
* Change couponName filter to coupons
* Add label to Cart item definition
* Change coupon.text to coupon.label
* Update coupon.label in coupon aria-label
* Update image and coupon.text in docs
* Add filter registration example
* Tidy and document current configs
* Add terser package
* sharedConfig with Terser plugin setup
* replace todo
* revert change to alias
* Package lock update
* ci to install
* Revert "ci to install"
This reverts commit a65b7f3ca8ef8ab1cb78f825a43ca8df07f784bb.
* revert shared config
* fix extra comma
* tweak setup
* Missing jsx
* add extend docs
* add slotFill docs
* Update docs/extensibility/available-endpoints-to-extend.md
Co-authored-by: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
* Update docs/extensibility/available-endpoints-to-extend.md
Co-authored-by: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
* Update docs/extensibility/available-endpoints-to-extend.md
Co-authored-by: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Allen Smith <loranallensmith@gmail.com>
* Apply suggestions from code review
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* add feedback to extend-rest-api-add
* Fix naming
* add disclaimer about feature gating
* add links to readme
Co-authored-by: Michael P. Pfeiffer <frontdevde@users.noreply.github.com>
Co-authored-by: Allen Smith <loranallensmith@gmail.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* Append skus to name
* Update assets/js/editor-components/products-control/index.js
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* formatting
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Add type argument to getSetting
* Convert prepareAddressFields to TypeScript
* Add State and Country Input prop types
* Type country input
* Type state input
* Convert AddressForm to TypeScript
* Add SHIPPING_COUNTRIES, ALLOWED_COUNTRIES (and states) to constants.ts
* Add return types to components
* Remove shipping-country-input JS file
* Fix type of CountryInputWithCountriesProps
* Use type argument in constants.ts
* Remove unnecessary braces on onChange function
* Use correct case for allowedCountries
* 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
* 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
* 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>
* 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
* 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
* 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>
* 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
* 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 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
* 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>
* 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.
* 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
* 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>
* 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
* 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>
* 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
* 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
* 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
* 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.
* 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>
* 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>
* 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
* 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
* 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
* 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
* 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>
* 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>
* 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.
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.
* 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>
* 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
* 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
* 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
* 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
* 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
* 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
* 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.
* 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>
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.
* 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
* 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>
* 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.
* 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
* 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>
* 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
* 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
* 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>
* 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
* 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>
* 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>
* generating changeset for pull request
* generating changeset for pull request
* update changelog in readme.txt
* fix zip script to account for spaces in path
* fix deploy script to account for paths
* add testing notes
* Update docs/testing/releases/460.md
Fix incorrect version reference.
* Show cart item subtotal instead of total in Cart and Checkout blocks (https://github.com/woocommerce/woocommerce-blocks/pull/3905)
* Show cart item subtotal instead of total in Cart and Checkout blocks
* Update test that would have caught this error
* Update changelog and testing steps
* update docs index
* update testing zip file
* update changelog in readme.txt
* update github-deploy to account for spaces in local path
* Bumping version strings to new version.
* add tsconfig.base.json to excludes for release builds
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* Client side improvement to the payment method integration docs
* improvements to php docs
* Improvements to server side documentation of Payment Method Checkout blocks integration
* Update docs/extensibility/payment-method-integration.md
Co-authored-by: Allen Smith <loranallensmith@gmail.com>
* Update docs/extensibility/payment-method-integration.md
Co-authored-by: Allen Smith <loranallensmith@gmail.com>
* Update docs/extensibility/payment-method-integration.md
Co-authored-by: Allen Smith <loranallensmith@gmail.com>
* Update docs/extensibility/payment-method-integration.md
Co-authored-by: Allen Smith <loranallensmith@gmail.com>
* More edits addressing feedback.
* Update docs/extensibility/payment-method-integration.md
Co-authored-by: Allen Smith <loranallensmith@gmail.com>
Co-authored-by: Allen Smith <loranallensmith@gmail.com>
* Fix tslint warnings
* Install @automattic/data-stores to get access to some type generics for use with our data stores.
* improve ts typing of cart-data store.
* fix incorrect rebase conflict resolution.
* Add tsconfig to components directory and include it as project
* Add @types/classnames package
* Migrate Label component to TSX
* Remove unused imports from Label component
* fix package-lock.json
It was generated with npm 7 and we don’t support that yet (and that update should be done in a separate pull)
* Add interface for LabelProps and implement.
Also:
- import `Fragment` from @wordpress/element.
- import `HTMLAttributes` explicitly as a type from react (@types/wordpress__element doesn’t export this interface).
* fix jest configuration
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* add typescript support
* Add type declarations for Cart and CartResponse interfaces
* make sure we’re resolving .ts files as well as .js files on imports
* add more types
* type the cart data store
* Apply suggestions from code review (implement .tsx in configs)
Co-authored-by: Jon Surrell <jon.surrell@automattic.com>
* remove global fetchMock declaration and directly import where used.
* rename type
* remove named action types and just infer by returning action creator values as const
* use interface instead of type
* rename
* renames
* create CartAction type as union of action creator returned types and implement in reducer
* remove unused imports
* refresh package-lock after rebase
* Add base TS config that projects will inherit from
* Add tsconfig for assets/js/data project
* Ignore TS error on cart store registration
We will address this in cooldown when we have time to investigate further
* Add tsc to build step to catch TypeScript errors
* add a separate command for tsc and tweak build command to use
* restore checkJs and allowJs values in config and remove ts check from build command
* Add ts:check-all command
* Add TypeScript checking workflows
* Change triggers for TypeScript workflow
* Use npm ci instead of npm install
* Remove ts:check-all from TypeScript workflow
* Remove TS Check GitHub workflow
* Remove type-defs dir from TS include, and remove ts:check-all script
We no longer need the ts:check-all script because ts:check will do this for us, the old ts:check did nothing and did not work.
* fix coupon loading issues
* include .ts files only from type-defs folder
Co-authored-by: Jon Surrell <jon.surrell@automattic.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
* Show total sale badge in medium carts
* Add markup to cart line item row to enable it to be displayed as flex
* Add styling to display price and sale badge as flex
* Revert product price being displayed as block
* Rename sale badge and price wrapper
* Hide line-total sale badge on mobile
* Change class name on total price and sale badge wrapper again
* Show total sale badge in medium carts
* Add markup to cart line item row to enable it to be displayed as flex
* Add styling to display price and sale badge as flex
* Revert product price being displayed as block
* Rename sale badge and price wrapper
* Hide line-total sale badge on mobile
* Change class name on total price and sale badge wrapper again
* Fix cart line subtotal display when currency has 0 decimals
* Fix wrong usages of getCurrency instead of getCurrencyFromPriceResponse
* Add tests
* Move comment in tests to relevant line
* Fix cart line subtotal display when currency has 0 decimals
* Fix wrong usages of getCurrency instead of getCurrencyFromPriceResponse
* Add tests
* Move comment in tests to relevant line
* Take stock status into account for All Products block.
A new `hideOutOfStockItems` setting flag has been added and it is used to hide the out of stock products
from the block. Products that are not out of stock can have 'instock', 'onbackorder' as stock status.
* Update StoreApi docs with new stock_status
* Fix the stock_status query param for collections of products
* Move bulk of payment registry/interface to more generic classes
* Implement registries for block types
* Split editor and frontend integration contexts
* Make abstract dynamic blocks extend the abstract block class
* Remove block type scripts from assets
* deprecate register_block_script
* Updates remaining blocks with new AbstactBlock which takes care of script enqueueing
* Add suffix to integration registry
* rename translator comment
* clarify method comment
* Wrong variable after rebase
* Use else if in ProductPrice
This is because the priceComponent variable should be set depending on some conditions, but multiple of them could be true, so by using else if we only handle the first true case
* Update snapshots for jest
* Use else if in ProductPrice
This is because the priceComponent variable should be set depending on some conditions, but multiple of them could be true, so by using else if we only handle the first true case
* Update snapshots for jest
* Show cart item total price including taxes when DISPLAY_CART_PRICES_INCLUDING_TAX is true
* Show cart item total price including taxes in Checkout block too
* Show cart item total price including taxes when DISPLAY_CART_PRICES_INCLUDING_TAX is true
* Show cart item total price including taxes in Checkout block too
* Add new exceptions for out of stock scenarios
These are needed to differentiate between the different stock validation errors, and so we can create the correct error message.
* Catch new out of stock exceptions when checking the cart for errors
This is so we can get the cart sent back to the client, if we don't catch these, then the route will just return a 500 error and crash.
* Add ArrayUtils class
This will contain methods used to operate on arrays that don't fit anywhere else.
* Handle the case in Checkout where the error is already a WP_Error
This will happen when the cart fails validation.
* Handle StockAvailabilityException in AbstractRoute
This will happen when an item or number of items in the cart are out of stock/insufficient stock.
* Throw exceptions for each type of invalid stock in validate_cart_items
This will allow us to create an error message for each type of violation to display to the user.
* Display additional error notices returned by the API
* Fix wording when throwing exceptions relating to stock
* Handle TooManyInCartException in CartController
* Abstract the merging of cart, status, and additional data into new fn
This allows us to simplify the way errors are returned from the API. The reason we have to add all of the data at once is because of how WP_Error works with the additional data, if there is already existing data in a WP_Error object, it gets moved into additional_data. By adding all of the data in one place, we stop this from happening. Also since we're only adding status and/or cart explicitly, it makes sense to just do it in one place.
* Add get_route_error_response_from_object method
This is so we can differentiate between a string and WP_Error object.
* Remove unnecessary slashes from WP_Error instantiation
* Add option to enclose each item in quotes in natural_language_join
* Abstract adding error messages to error object into single function
A lot of code was repeated, so doing this cuts down on that and ensures any changes only need to be made in one place.
* Create new parent exception for each type of out of stock exception
This is so we don't have to repeat code inside each different exception and we can simply inherit StockAvailabilityException.
* Catch the generic StockAvailabilityException in get_cart_item_errors
* No longer recalculate totals in validate function
It is not needed, the totals are recalculated elsewhere. This call was superfluous.
* Reduce nesting, and only throw exception if error object has errors
* Improve comment on get_route_error_response_from_object method
* Fix nesting when throwing the InvalidStockLevelsInCartException
* Catch errors during cart validation
* Add get_error_message_for_stock_exception_type function
This will be used to get an error message depending on the type of extension, and whether the plural form, or singular form is needed. This abstraction is better because the code is used in more than one place in the API.
* Use error message generation function instead of creating errors individually
* Use specific error codes for each type of error & fix PHPDoc
Now the stock_exceptions_to_wp_errors function will return an array of WP_Errors this is better as the client needs a distinct error code to display and replace notices.
* No longer remove items from cart or modify quantity if there is an error
* Return the WP_Error from RouteException or all Stock WP_Errors
* Fix error in PHPDoc
* No longer necessary to add get_cart_item_errors into an array
This is because the method always returns an array now.
* Rename variables in get_cart_item_errors to be more descriptive
* Improve PHPDoc on get_cart_item_errors
* Replace underscores with hyphens in error code
* Only return WP_Errors that have an actual error in them
* Add unit test for ensure the cart errors relating to stock are handled
* Fix typo in comment
* Use optional chaining to add errors to cart
* Add filter to extend product price
* Extend order summary product price too
* Make it so 'format' is applied to all product price types
* Order
* Pass lineItem to the filter
* Remove code targeting WC Subscriptions
* Rename filter
* Remove unnecessary CSS block that made prices be displayed as blocks
* Use line item totals instead of product price multiplied by quantity to show line item price
* Fix wrong currency usage
* Add comment to disable eslint
* Fix JS error when totals is undefined
* Align order summary item price to the right
* Use extendibility API instead of filters
* Remove __EXPERIMENTAL_CART_ITEM_PRICE_FILTER from docs
* fix rebase
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Pass get_country_locale via assets
* Create helper to prepare and merge address fields
* Use new helper in address form
* Only pass field overrides now that fields are merged
* Fixc configs and remove lodash usage
* Prevent formatting of empty postcodes to suppress api error
* prevent memo on rerender
* Conitonal enqueue of locale data
* define index in increments of 10
* remove address-form
* circ deps changes
* Workaround for core data issue
* fix test
* remove prepareAddressFields export
* Remove old comment
* object from.entries polyfil
* Revert "object from.entries polyfil"
This reverts commit ba343adcf5fd2f843b225aebe340cce9b664c851.
* replace fromentries
* fix final fromentries
* Reduce repetition in SchemaController::initialize
* Ensure AbstractCartRoute has a cart schema when it returns errors
* Move nonce logic to cart
* typo
* Add validation function
* Prefix validateElementOrString with __experimental
* Update experimental docs
* Typo
* Update JS docs
* Use an object for applyCheckoutFilter args
* Args doesn't need to be an object
* Wrap validation function execution in a try/catch block
* Only accept strings for the totalLabel filter
* Change applyCheckoutFilter signature
* Add validation function
* Add Product name filter
* rebase
* update second filter call
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* Replace filters with an extendibility API to hook into Cart and Checkout blocks
* Update docs
* Add a validate argument
* Add docs comments
* Add tests
* Add validation function
* Prefix validateElementOrString with __experimental
* Update experimental docs
* Typo
* Update comment
* Update JS docs
* Use an object for applyCheckoutFilter args
* Args doesn't need to be an object
* Wrap validation function execution in a try/catch block
* Only accept strings for the totalLabel filter
* Change applyCheckoutFilter signature
* Apply filters for subtotal and sale badge in CartLineItemRow
* Append suffix to prices and SaleBadge if passed in as a prop
* Add subtotal filter to OrderSummaryItem
* Add tests for OrderSummaryItem and ProductPrice
* Rename test for ProductPrice
* Update checkout filter registration plugin name
* Remove obsolete snapshop
* Remove suffix and change to format
This is because we want to make the entire price string editable, not just the part after it.
* Change formatting on SaleBadge to use createInterpolateElement
* Remove tests that are no longer needed.
* Update ProductPrice tests to reflect changes to format prop
* Check that subtotalPriceFormat contains <price/> in OrderSummaryItem
* Fix cart block styling to stop badges overflowing the container
* Add <price/> placeholder in OrderSummaryItem price filter
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* Replace filters with an extendibility API to hook into Cart and Checkout blocks
* Update docs
* Add a validate argument
* Add docs comments
* Add tests
* Add validation function
* Prefix validateElementOrString with __experimental
* Update experimental docs
* Typo
* Update comment
* Update JS docs
* Use an object for applyCheckoutFilter args
* Args doesn't need to be an object
* Wrap validation function execution in a try/catch block
* Only accept strings for the totalLabel filter
* Change applyCheckoutFilter signature
* Fix ShippingRatesControl not honoring renderOption prop
* Update order summary design
* Updates TotalsCoupon design
* Update Cart block sidebar title design
* Make values bold and labels regular in Cart and Checkout sidebar
* Update styles of shipping rates selector and radio control
* Remove unnecessary overflow rule in Panel content
* Fix shipping options in Checkout block
* Add some Twenty Twenty One fixes
* Fix saved payment methods display
* Remove top spacing no longer necessary in order summary quantity badge
* turn Totals title to bold
* Move right padding from product name to item description
* Take left margin off list items in product details
This is because in themes where a left margin is applied to li elements, the product detail/addon gets indented and it does not sit flush with the edge of the product details container. Adding this rule to the main wc-block-components-product-details rule will stop other themes indenting <li>s
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
* Remove references to no-longer-existing isFeaturePluginBuild calls
This is because these were moved/removed in woocommerce/woocommerce-blocks#3065 but the docs were not updated fully.
* Update reference to travis to GitHub actions in docs
* Update JS testing doc to have info about Github Actions
* Add documentation for gateway_features_list hook
This was added in woocommerce/woocommerce-blocks#3719 but not documented.
* generating changeset for pull request
* generating changeset for pull request
* Changelog
* Testing docs
* Increase width of Cart's product column on <= medium screens
* move shipping-rates-control and shipping totals back into base/components/cart-checkout
* fix notice styling
* Move no rates logic to package
* Updating testing instructions
* 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: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* move shipping-rates-control and shipping totals back into base/components/cart-checkout
* fix notice styling
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Add left vertical bar to payments methods step.
* Remove horizontal borders around order notes.
* Add class to order notes component.
We need it to traget that element with CSS.
* Update padding on order notes checkbox to match desing.
* Remove full stop to match the design.
* Add label for not saved payment methods option.
* Remove use new payment radio.
* Always show new ayment methods selector
* Remove editor context for now.
* Add accordion component skeleton.
* Small component refactor.
* Use accordion for new payment options.
* Fix jsdoc.
* Add styling.
* Add input styling.
* Hide label if we don't have saved methods.
* Cleanup.
* Cleanup and styling.
* Add target class to aid with alignment.
* Update use new payments label styling.
* Update Place Order button location.
* add full stop to payment method copy
* ensure that there is always a (default) selected payment method:
- using `activePaymentMethod` from context
- this ensures there is a default selected on initial render
- and handles any dynamic changes to available payment methods
- e.g. COD disappearing when change shipping option
- remove unused / redundant selectedMethod prop - context is best
* use tab-based payment UI for 2 or fewer payment methods:
- move saved payment state to payment context; it's shared state needed
by both PaymentMethodOptions and SavedPaymentMethodOptions
- show previous tabs UI if:
- customer has no saved payment methods (cards)
- store has 2 or fewer payment methods available
- when initialising SavedPaymentMethodOptions, only select one if the
user hasn't selected a real payment method - this ensures radio
buttons switch correctly between saved card => `Use another`
- remove various props and local state that is no longer required (🤞🏻)
* experimental - styling tweaks for single payment tab (remove "tab" UI)
* Revert "experimental - styling tweaks for single payment tab (remove "tab" UI)"
This reverts commit e09dd4862b97d989d950a9d67672d83e7b8992e4.
* Add single payment method UI.
* Adjust single method styling.
* Add outline and margin to two methods version.
* Fix gap for order notes on/off option.
* Update Order button spacing CSS.
* Reuse computed values.
* Remove tabs and single payment option.
* We no longer need this test as the UI was changed.
* Fix payment methods labels height.
* Simplify.
* Remove not needed import.
* Typecheck an option.
* Refactor code.
* Rename.
* Rename.
* Update typdefs.
* Remove border for add order notes.
* Correct spacing for radio-button and label.
* Add simple test. Switch to payment method.
* Update style.
Co-authored-by: Rua Haszard <rua.haszard@automattic.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* Improve nonce handling by rejecting previous nonces from cache
* use timestamp instead of previous nonce
* Switch back to time()
* Seconds not ms
* Add comment about the date code
* Add supports data to payment methods abstractions. Implement in Stripe.
* Add capabilities to the payment gateway.
* Payment requirements in cart schema.
* Supported features format update.
* Formatting.
* Check required payment features.
* Refactor capabilieties check.
* No need for the cart parameter.
* Allow external modifiacation of features capability.
* Use ExtendRestApi to inject payment requirements into cart endpoint.
* Simplify the code.
* Enable more integrations.
* Enable Stripe payment request.
* Move the filter to a more correc location.
* Add features check.
* Update typedefs and documentation.
* Update tests with new functionality.
* Style fixes.
* Expose schemas
* Accept strings for select shipping rate
* strings are allowed
* Refactor shipping package to hold it's own state
* Add extension data to cart hook
* Progress but state is broken
* Move state back to hook
* Progress but state is broken
* use shipping hook updates
* Fix re-render issue
* hide x1
* Shipping slot fill
* Working slot fills
* Do not export package
* Update extend usage in unit tests
* update mock test data
* Package per slotfill
* Resolved merge conflicts
* Update assets/js/blocks/cart-checkout/subscriptions-integration.js
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* rename slot
* deriveSelectedRates return doc
* useCallback in throwError
* final class ExtendRestApi
* spacing
* Move shipping rate selection to package level
* remove const for counts
* Remove schemas from extend
* unused use
* move to a single fill for packages
* add todos
* move subs code
* fix extra extensions
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* enable rules and add exceptions
The `import/no-unresolved` and `import/no-extraneous-dependencies` rules defaults are enabled and configuration for adding exceptions for both webpack config resolution and externals or indirect dependencies are added.
* woops forgot to commit eslint-import-plugin-webpack resolver dependency
* I guess node resolver needs installed too?
* remove default resolve (doesn’t seem to help with the GH action errors)
* change config to lowercase for node
* Fix image link in all products block.
- add alt text on product image
- prevent the appearance of both product and placeholder image at the same time
- make anchor with placeholder image accessible
* Add testing for product-elements/image block.
* implement prettier config for importing wordpress/prettier config
* update packages
This updates @wordpress/scripts to latest version so we are using the latest `@wordpress/eslint-plugin` rules.
Also installs a new required dependency due to the above update.
* temporarily convert new rules to warnings to handle in followups.
* fix stylint configuration and temporarily block rule
Latest @wordpress/scripts update requires the `@wordpress/stylelint-config` package instead of the previous builtin configuration. So applies a fix needed from that change.
* update puppeteer dependency version
* package-lock update
* Add missing wrapper from FeaturedCategory block
In the rendered block we now have a div.wc-block-featured-category__wrapper around inner elements.
* Add missing inner wrapper for Featured Product block
In the rendered block we now have a div.wc-block-featured-product__wrapper around inner elements.
* Create new vars to differentiate between single and multiple item price
This is because we need to display the subtotal of the item AND the total (subtotal * quantity)
* Add subtotal and move quantity picker
As per the new designs, the quantity picker should be moved below the product metadata, and the product subtotals should appear below the product name.
* Move line item total to top of grid on mobile/medium/small
* Remove CSS for trash icon that is no longer used.
* Remove link style colour override from product name and make total bold
* Remove quantity column from CartLineItem
This is because the quantity picker is now displayed below the product metadata and name.
* Fix margins around quantity picker and its width
* Always disable link to product in OrderSummaryItem
* Add single price below product name in OrderSummaryItem
* Add styles for new OrderItemSummary design
* Move total into its own "column"
This is to stop product description text flowing under the total and making it look untidy.
* Add styles to cater for total price being its own column
* Convert precision after multiplication instead of before
* Remove unnecessary div from OrderSummaryItem
* Remove line height from product names on order summary
* Add more margin to the bottom of the product metadata div
* Delete trash icon
* Only remove margin from the bottom of last product-details
* Move quantity input to below product name in cart skeleton
* Add placeholder for individual price to Cart skeleton
* Honor hidden property of cart item data and add support for experimental property
* Add docs to experimental property
* Typo
* Add protection in ProductDetails for the case where 'details' is not an array
* Update ProductDetails so it works properly in cases where 'name' is not provided
* Add snapshot testing to ProductDetails
* Remove savePaymentInfo check when displaying payment methods
This is because the savePaymentInfo is derived from whether the save payment method checkbox shows. This check doesn't make sense to do because it's not a good indicator of whether the payment method is enabled. Subscriptions for example hides the checkbox because it is implied that the method will be saved. We should instead rely on the server-side to only send permitted saved payment methods.
* Add safely_get_request_payment_method
This will allow us to try to get the payment method if it was passed in the request, but will default to an empty string if not. This is different to get_request_payment_method because it doesn't throw any errors. We need it to be different because get_request_payment_method is used when the order definitely needs payment (so a normal checkout scenario, vs. a £0 subscription checkout)
* Add action to update order meta when checking out
This is needed because some extensions rely on this action to add their information to the metadata of order items.
* Remove safely_get_request_payment_method
This is no longer needed.
* Remove @since from experimental hook
* Add PHPDoc for new update_order_meta hook
* Document use of experimental hook
* Reinstate the check for allowing saved cards
* Add method to Stripe integration to determine if saved_cards is enabled
* Add new field to get_payment_method_data
This adds displaySavePaymentMethodCheckbox which will be used to determine if the checkbox to save payment methods should display.
* Add displaySavePaymentMethodCheckbox option to client
This will determine whether the "Save payment information" checkbox will be displayed.
* Add requiresSaving option to Stripe payment method data
This is informed by the saved_cards option and the result of the wc_stripe_display_save_payment_method_checkbox filter.
* Rename displaySavePaymentMethodCheckbox to requiresSaving & fix logic
* Revert negation on display_save_payment method_checkbox filter & rename
We are going to rename the properties we use to determine whether saved cards are shown, or whether the save payment method checkbox is shown, so that their names are more descriptive of what they are for.
* Rename allowSavedCards and requiresSaving in Stripe integration
* Rename savePaymentInfo&requiresSaving to showSavedCards & showSaveOption
This is so we can hide the checkbox independently of hiding the saved payment methods.
* Show deprecated message if payment methods use savePaymentInfo
This is because we are leaving it in to enable backward compatibility but payment methods registering using this should be informed of the change in case it gets removed.
* Update Stripe typedefs and keys of supports object
* Show customer payment methods if showSavedCards is true on the method
* Make PaymentMethodTab accept showSaveOption prop
This will allow us to show the save checkbox only if the payment method says it should be shown.
* Update tests to use new keys in supports when reg'ing payment methods
* Add optional chaining when validating payment method config
This makes the code a little tidier :)
* Update assets/js/blocks-registry/payment-methods/payment-method-config.js
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Add more information to deprecated call in payment method config
* Fix lint error
* Fix prop types for PaymentMethodTab
* Add information about supports on payment methods to docs
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* move items to package
* move components to package
* fix dep issue
* pass down classname
* move Panel and Price utils
* expose extensions
* fix import
* move cart call to inside slot
* fix unit tests
* fixes after rebase
* move ShippingRatesControl into packages/checkout
This fixes the `wc-blocks-checkout` circular dependency because `Package` was importing from `@woocommerce/checkout`.
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* add circular dependency check and fix it
* only throw error
* udpate error message
* only throw on production
* better defaults
* add variable to travis
* double echo
* echo with -e
* generating changeset for pull request
* generating changeset for pull request
* Update changelog.txt for 4.3.0 release.
* Update testing instructions for 4.3.0 releae.
* Update testing instruction for review.
* Revert "Improve error displayed to customers when an item's stock status changes during checkout. (https://github.com/woocommerce/woocommerce-blocks/pull/3656)"
This reverts commit a30179f165.
* Revert 3656 documentation changes.
* Update test zip link.
* Update release date for 4.2.0.
* Bumping version strings to new version.
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: budzanowski <bartosz.budzanowski@gmail.com>
* fix circular dependency in text-input
* fix circular dependency in chip component
* fix circular dependencies in AddressForm component
* fix circular dependencies in product-list
* fix circular dependencies in hooks
* fix circular dependencies in context
* Fix circular dependencies in components/cart-checkout
* fix use-checkout-submit test
- can’t mock the hook alias anymore
- account for undefined object returned from `usePaymentMethods`
* Add new exceptions for out of stock scenarios
These are needed to differentiate between the different stock validation errors, and so we can create the correct error message.
* Catch new out of stock exceptions when checking the cart for errors
This is so we can get the cart sent back to the client, if we don't catch these, then the route will just return a 500 error and crash.
* Add ArrayUtils class
This will contain methods used to operate on arrays that don't fit anywhere else.
* Handle the case in Checkout where the error is already a WP_Error
This will happen when the cart fails validation.
* Handle StockAvailabilityException in AbstractRoute
This will happen when an item or number of items in the cart are out of stock/insufficient stock.
* Throw exceptions for each type of invalid stock in validate_cart_items
This will allow us to create an error message for each type of violation to display to the user.
* Display additional error notices returned by the API
* Fix wording when throwing exceptions relating to stock
* Handle TooManyInCartException in CartController
* Abstract the merging of cart, status, and additional data into new fn
This allows us to simplify the way errors are returned from the API. The reason we have to add all of the data at once is because of how WP_Error works with the additional data, if there is already existing data in a WP_Error object, it gets moved into additional_data. By adding all of the data in one place, we stop this from happening. Also since we're only adding status and/or cart explicitly, it makes sense to just do it in one place.
* Add get_route_error_response_from_object method
This is so we can differentiate between a string and WP_Error object.
* Remove unnecessary slashes from WP_Error instantiation
* Add option to enclose each item in quotes in natural_language_join
* Abstract adding error messages to error object into single function
A lot of code was repeated, so doing this cuts down on that and ensures any changes only need to be made in one place.
* Create new parent exception for each type of out of stock exception
This is so we don't have to repeat code inside each different exception and we can simply inherit StockAvailabilityException.
* Catch the generic StockAvailabilityException in get_cart_item_errors
* No longer recalculate totals in validate function
It is not needed, the totals are recalculated elsewhere. This call was superfluous.
* Reduce nesting, and only throw exception if error object has errors
* Improve comment on get_route_error_response_from_object method
* Fix nesting when throwing the InvalidStockLevelsInCartException
* Add protection around mock queries in unit tests.
This adds additional checks before mocking wc_get_orders query results to prevent overriding refunds query. This is needed with WC core 4.9 since it does an addtional wc_get_orders query to preload and hydrate cache for refunds in order to improve performance.
* update jetpack autoloader to 2.7.1
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Inject the routes controller
* Cart totals need to be calculated on cart routes or fees will be missing
* Add fees to schema and response
* Add fees to useStoreCart
* Fix styling of multiple fee rows
* Fix test shape
* update input colors for dark and light mode + tweak padding and alignment
* update light input dropdown text color
* Fix lint errors
* Fix package lock.
* Use input-text-active for select options
* Make sizes responsive in radio control
* Unify border colors of text inputs, checkboxes and radio controls
* Unify radio control sizes in mobile/desktop
Co-authored-by: David Levin <davidlevin@Davids-MacBook-Pro-2.local>
Co-authored-by: budzanowski <bartosz.budzanowski@gmail.com>
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* add plugin area
* add invisible errorBoundary
* introduce slot
* change name to OrderMeta
* fix rebase
* wip
* create checkout file
* Import ExperimentalOrderMeta from @woocommerce/checkout
* Rename wc-checkout-packages handle to wc-blocks-checkout
* Only import wc-blocks-checkout in the feature plugin
* Move checkout package to packages folder
* Add @woocommerce/blocks-checkout to tsconfig
* Move TotalsItem to @woocommerce/checkout
* Use Fragment short syntax
* Remove example code
* Honor renderError prop in BlockErrorBoundary
* Rename error boundary
* Add example code
This reverts commit 9b6af7178cbef05589779ef7f5a750d53e7fc8cf.
* Revert "Add example code"
This reverts commit 2f50349692f53c5bb143516365eee7a98d580dfd.
* Add @woocommerce/blocks-checkout to jest config
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* add you don’t need lodash eslint plugin
* handle lodash.omit eslint errors
- storybook and webpack config implementations were just ignored.
- shared/validation/index.js was converted to use ES6 destructuring to eliminate usage.
* remove lodash assign usage
* convert lodash isNan to Number.isNan
* ignore lodash.flatten lint error for now
* remove usage of lodash.isNil
* add exclusions for lodash rules in main eslintrc file rather than per file.
* Add status badges for linting and PHP Code quality
* Add PHP, JavaScript, and E2E Testing badge
* Reorder badges
* Remove travis badge
* Break PHP Unit tests on purpose
This is for testing the GitHub actions badges
* Revert "Break PHP Unit tests on purpose"
This reverts commit 3af4d83d151f59ca8a13d12ba48d69565e8c26c5.
* Break JS/CSS/PHP Linting
* Revert "Break JS/CSS/PHP Linting"
This reverts commit 6b105535933c36f340a364ead57bf3cbc9947dbf.
* Specify trunk branch name on badges
* Allow integers in payment_data values
* Revert "Allow integers in payment_data values"
This reverts commit b7f2ca4a5b696091afe796f47e84f584a0b27d9e.
* Enforce payment tokens to be strings
* Create end-to-end-tests.yml for E2E testing action
* Change actions to run on push instead of PR
* Install libstdc++-4.9-dev on E2E tests action
* Add correct apt repository for libstc++
* Reconfigure apt-get commands for installing libstdc++
* Remove accidental inclusion of Travis config from E2E tests action
* Install libkrb5-dev as part of e2e test action
* Run apt commands as sudo
* Install gutenberg plugin and e2e testutils
* Add environment variables to E2E tests
* Rename action and add further config for composer and wp-env
* Rename workflow
* Add jobs for WP 5.6, 5.5, and 5.4
* Fix YML indentation
* Apply 767 permissions to wp-env directory
* Run chmod as sudo
* Comment 5.6 and 5.6 with GB out to test 5.4 more easily
* Remove WP install job, since it should run on each step
* Change order of wp-env start and chmod
* Reorder commands for 5.4 job
* Try running 5.4 tests in isolation
* Reenable tests for all WP versions
* Move commands out of bash script into a series of commands
* Fix indentation on 5.5 job
* Re-enable libkrb5-dev install
* Clean wp-env before each run & upgrade wp-env to 3.0.0
* Update lock file for wp-env@3.0.0
* Reorder wp-env start and clean commands
* Reorder wp-env permissions commands
* Reorder wp-env permissions setup for all jobs
* Reorder wp-env permissions setup for 5.5 and 5.4
* Ensure correct order for env setup and flush permalinks twice
* Update jest snapshots
* Remove rewrite flush command from yml
* Remove npm build from every step and try it just at the start
* Set correct e2e build script
* Add jobs for PHP 8
* Specify PHP 8 minor version
* Run PHP 8 jobs first
* Remove PHP 8 jobs
* Add JS Unit tests job
* Remove js-unit-tests.js workflow
* Remove composer install from every step, add it to its own step
* Cache composer files
* Bust npm cache to test nodegit
* Rename npm cache
* Renove npm cache entirely
* Revert "Renove npm cache entirely"
This reverts commit d6fac6a6ebd9162e48f64daaa8c971320756579e.
* Rename npm cache back to how it was
* Fix yml indentation
* Remove echo from composer cache step
* Revert back to composer example
* Add PHP Unit tests to workflow
* Add PHP Unit tests to workflow
* Rename E2E tests workflow and file
* deliberately break e2e and unit tests to test workflow 👺
* fix php test, should see e2e fail
* revert broken e2e test
* Change steps into jobs, rename workflow
* Remove Travis workflow file
* Add all necessary setup steps to each job
* Rename Setup job and remove dependency
* Add individual jobs for each E2E test environment
* Add npm install and build to setup job
* YML syntax fix
* Remove error-causing chmod
* Rename blocks.ini setup step
Fixes a typographical error.
* Get the latest stable version of WooCommerce for PHPUnit testing
* Add PHP8.0 and PHP5.6 Unit tests
* Run composer update for PHP 5.6 and PHP 8.0
* Revert "Run composer update for PHP 5.6 and PHP 8.0"
This reverts commit 4f90522d0b52b7a8b9e896e9c783795be9dc5399.
* Revert "Add PHP8.0 and PHP5.6 Unit tests"
This reverts commit 66e317dec4af6e3a2ac6f78b6efd050e7fc5aa8e.
Co-authored-by: Rua Haszard <rua.haszard@automattic.com>
* update readme
* add testing notes
* fix typo
* update readme
* add zip
* fix title version
* Bumping version strings to new version.
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* use consistent product name `WooCommerce Blocks:
- readme.md title
+ update product vision paragraph
- update references in readme.txt preamble
- update in tests bootstrap message
* add WCCOM/docs links front & centre in readme for convenience
* Revert "Add 'hidden' class name when using the 'hidden' attribute"
This reverts commit 0332e33a60a516506718e8ed4659e45d32dc80a4.
* Add styles for hidden panel content
* Add docs about account for the hidden attribute in styles
* Update docs/theming/README.md
Co-authored-by: Rua Haszard <rua.haszard@automattic.com>
Co-authored-by: Rua Haszard <rua.haszard@automattic.com>
* For gateways with disabled saved payment metods, don't show saved items in context.
* Fix style.
* Update name.
* Simplify and fix.
* Whitespace.
* Revert for another PR.
* Formatting fix.
* add fallback screen reader styles
* use shared blocks screen-reader styles from mixin:
- tweak mixin to align with focus-reveal style
- add new mixin for focus-reveal style, since it is coupled to
visually-hidden mixin
* Trim input values before validation on Checkout
* Fixes required field checking at schema level
* Require country during checkout and ensure values are formatted
* Add handling for rest_invalid_param messages
* Remove prepare_address_fields - handled by schema
* Add address validation to OrderController
* Implement address validation
* Error errors from all endpoints more gracefully
* update non-true description
* required prop
* Update tests
* Fix equalityFn so updates are triggered when address changes
* Remove debounce so fields update if context changes
* Update src/StoreApi/Schemas/AbstractAddressSchema.php
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* Add missing wp_unslash
* Validate allowed countries should block checkout if no countries are allowed
* Type in locale variable
* Update assets/js/base/utils/errors.js
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* Fix validator calls
* Remove refererence
* Restore onChange order
* eslint fix
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* Add CSS rules for dark mode theme setting in Twenty Twenty-One
This is required because the theme may be set to dark mode independently of the browser. The reason we need two rules for this is because the checkout block can be set to have dark mode inputs too, so this rule doesn't need to apply then.
* Add theme-specific class for Twenty Twenty-One
* Tweak message for stale activity and bump close boundary
Temporarily, bump the close boundary to 20 days to cover the holiday period.
* revert bump to 90 days
* Use the @wordpress/server-side-render package
* Add @wordpress/server-side-render dependency
* Update requiredPackagesInWPLegacy for 5.4 support
* Update package lock
* Add stories to Cart & Checkout totals components
* Create @woocommerce/knobs alias
* Update TotalsFooterItem default values so they are in line with other stories
* Remove no longer used __experimentalPersistItemToCollection function
* Add __experimentalDeRegisterPaymentMethod and __experimentalDeRegisterExpressPaymentMethod to feature flags doc
* generating changeset for pull request
* generating changeset for pull request
* Update readme changelog
* Update requirements
* Testing instructions
* Update zip file
* Update nonce outside of json parse
* Set logged in cookie on store api requests
* Update zip
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* Update @wordpress/components and @wordpress/base-styles
* Fix JS warning in Select/downshift
* Remove color definitions that are now imported from @wordpress/base-styles. Fixeswoocommerce/woocommerce-blocks#3311
* Use -unit values from @wordpress/base-styles. Fixeswoocommerce/woocommerce-blocks#3313
* Update snapshots
* Fix payment methods test
* Don't extract dependencies that are not available in WP 5.3
* Avoid extracting @wordpress/compose since last version doesn't have resize observer
* Remove unnecessary uses of @wordpress/compose in a frontend scripts
* Add missing spaces
* Remove Blocks version of ReserveStock Class
* When a cart item is removed, remove holds on stock
* Move maybe_release_stock to abstract
* Update ReserveStockException usage
* refactor and reorder checkout processing
* improve handling of checkout POST with mixed success:
- return coupon errors in a property
- don't throw from coupon validation:
- return info about errors to route handler
- tweak logic in route handler to prevent subsequent processing
- default payment result to fail to avoid accidental successful checkout
- in client, catch errors and new customer id:
- render any errors as notices - i.e. coupon error
- if a customer ID is included, push into store (so UI updates)
* fix linter whitespace issue from rebase merge
* fix MIA order validation/errors (due to rebase):
- reinstate thrown exception when validating order
- return exception was an experiment, now solved in woocommerce/woocommerce-blocks#3454
* hide "Create account" checkbox if account is created during an error response:
- update store with new user id
- remove stale response.errors handling;
- current approach (https://github.com/woocommerce/woocommerce-blocks/pull/3454) is to add data to error response
* show a notice informing user that they have signed up
* white space
* Handle header and update typedef
* Remove "errors" schema
* remove errors
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* refactor and reorder checkout processing
* move experimental order_processed hook as last step before payment:
+ flesh out docs - intention/purpose, introduced version, link to PR,
relationship to legacy hook
* return current user_id with checkout error responses, so UI can update
* clarify user id comment
* Add store API nonce to all responses
* catch new nonce & update store for POST /checkout errors
* ensure $order hook param and database are in sync
* fetchResponse->errorResponse
* Move payment method ID validation to schema
* Add the nonce inline
* Simplify error method
* Add todo for injection
* Hook docs
* Return user ID as a header instead of in error response
* Default to private methods
* Tidied processing logic/order save placement
* White space removal
* Remove duplicate comment
* Remove root slash
* Remove unused created variable
* Remove woocommerce_registration_error_email_exists filter in error message from API
* Move payment validation
* Moved comments
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* generating changeset for pull request
* generating changeset for pull request
* add changelog for version 3.9
* clear vendor folder before doing deploy script
* start testing docs
* more build script improvements
* Finish testing notes
* update testing docs
* Prevent exclude drafts filter being tree shaken (https://github.com/woocommerce/woocommerce-blocks/pull/3463)
* Reverse logic for hiding product name in checkout sidebar (https://github.com/woocommerce/woocommerce-blocks/pull/3464)
The hasLink prop was removed from ProductName and disabled is used instead, this change makes the variable name more descriptive, and uses disabled to signal if the ProductName should link or not.
* update zip file
* tweak changelog
* add link to release post in changelog
* fix release date in readme.txt
* Bumping version strings to new version.
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
Co-authored-by: opr <5656702+opr@users.noreply.github.com>
The hasLink prop was removed from ProductName and disabled is used instead, this change makes the variable name more descriptive, and uses disabled to signal if the ProductName should link or not.
* Reset product list padding
* Adjust placeholder color if css variable exists
This is 2021 specific but may become more prominant.
* FIx editor button styles in 2021
* Adjust button sizes based on columns
* Adjust padding
* Fix price slider styling in Twenty Twenty One
* Fix price slider styling in Twenty Twenty One
* Fix radio control styling in Twenty Twenty One and remove usage of mixin
* Force 0 padding on active filters list
* Hide spinner on cart's "proceed to checkout" button when page unloads
This is required because of a feature of Safari where the page state is saved, including all class names, when a transition occurs. Navigating using the back button restores the page to that cached state, so the spinner class remains on the button. Resetting the state just before the page gets cached stops this from happening.
* Change comment case to sentence case.
* Add catalog_visibility to CartItemSchema.php
This is used to get whether the product is visible in the catalogue, visible in the shop only, visible in search results only, or visible everywhere. We need to know this so we can pass it to the ProductImage and ProductName components.
* Remove links from CartLineItemRow if not visible in catalogue
Added catalog_visibility to lineItems prop, and when the product is not visible in the catalogue do not wrap product image in a link. Also pass down the hasLink prop to ProductName.
* Add hasLink prop to ProductName
When this prop is false we should not output the link around the product name. This is for when the product is hidden from the catalogue but we still want to show its name somewhere.
* Add tests and storybook for ProductName
* Add catalog_visibility check to OrderSummaryItem
When the catalogue visibility of a product is set to hidden or search, then the product name in the checkout sidebar should not be hyperlinked.
* Reverse logic for hiding link on product image & disabling link on name
Following a point from @budzanowski we do not need the hasLink prop, making use of disabled is probably a better idea.
* Remove tabindex from a in ProductName & output span if name is disabled
This change removes the need to pass a tabindex to the a in ProductName. This is because a disabled ProductName will now never output an a tag. When the ProductName is disabled a span is output instead, which has no tabindex by default.
This change also reverses the logic to decide whether the a or span should be output so as to make the code more readable and flow better.
* Update storybook and tests/snapshots for ProductName
* Correct docblock description
* Sync shipping address changes with billing data
* Update inline documentation
* Revert address sync because it fails when shipping is disabled explicitely
* Avoid loading shipping address from customer is shipping is disabled
* Rather than update order from the wc/store/checkout request, update the customer object
This is turn is synced to order, but also allows the cart calcultions to use the posted data. This means that taxes will be updated based on address data even if not displayed on the checkout.
* Add action that combines billing and shipping updates
* Add route for updating billing and shipping address
* Sync billing data to server on change
* Shared constants for billing data
* Skip address update if missing country
* Allow null values to skip formatting
* Add billing to cart schema
* Removed unwanted hooks from previous commit
* Decoding is handled in useStoreCart
* Remove hook
* Make shipping context hold state
* Make billing context hold state
* Add address processors
* Cart does not have billing
* Update tests, remove some unrelated changes affecting the diff
* Revert "Update inline documentation"
This reverts commit 0393f49316de3152c6dcf6fda1192c06a74f1b55.
* Make shippingRatesAreResolving conditonal based on API request
* Shared address processor in cart and checkout
* Rename REST endpoint
* CustomerDataProvider and hook
* Update shipping address type defs
* Rename customer address endpoint, and remove update-shipping
* Update tests
* Fix tests by restoring country validation
* typo
* Update assets/js/base/hooks/cart/use-store-cart.js
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* Simplify debounce and request handling
* Remove state from address sync
This will mean billing is "forgotten" if using the checbox, but this greatly simplifies logic.
* Rename shipping rates loading to customer data loading
* Sync based on useStoreCart data
* Made cart API less strict on addresses
* Fix useCheckoutAddress sync
* Add note on currentShippingAsBilling
* Use incoming isCart
* Add more detailed inline comment for shippingAsBilling toggle event
* Combine customer billing and shipping ref
* Update address docblock
* Error handling in pluckAddress
* Fix cart response after rebase
* Update customer tests
* Update src/StoreApi/Routes/CartUpdateCustomer.php
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* Pass disabled prop to FormStep in order-notes-step.js
This way we can add the disabled class to the div or fieldset rendered by FormStep.
* Add disabled class & style for disabled FormStep components
Allows us to style disabled elements that cannot have the disabled attribute (divs) the same way as disabled fieldsets are.
* Update test snapshot for FormStep
This is because we added a class to the div/fieldset element when it is disabled.
* Remove redundant selector from form-step styles
Because we now add the --disabled modifier to the class, we no longer need the disabled selector. The new class-name based selector covers both fieldsets and divs.
* Change style rules for checkout step headings
This is required because when the checkout heading text is too long it collided and overlapped the heading content due to its absolute position. In this commit we add a grey line to the left of the checkout step heading to ensure consistency with the checkout step container's styling.
* Remove position rule from checkout-step heading content
This was no longer needed as it nothing relied on the position of this element.
* Check price >= 30
* Force payment methods to react to order totals change
* Fix express payments reducer so it overwrites
* Fallback to 0 if undefined
* handle plain options passed to registerPaymentMethod:
- no need for a callback dance
- support the previous API: if a function is passed, call it as before
* update Stripe for new registerPaymentMethod interface
* update docs & all built-in payment methods to simpler API
* handle plain options arg to registerExpressPaymentMethod:
- add legacy fallback if passed a function
- update stripe express payment method
- update docs
- remove unused `assertValidPaymentMethodCreator` util
* use correct case for `JavaScript`
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* typedefs for payment registration options + tidies for regular methods
* typedef express payment options arg & tidy stripe/payment-request:
- use camelCase for config instance (not a constructor/type)
* mention typedefs in payment method dev docs
* use @wordpress/deprecated to warn if callback passed to payment register
* update unit tests for new payment method API
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* Exclude checkout-draft orders from WC Admin reports
* Hook into order query args
* Add comments before applying filters
* Revert "Add comments before applying filters"
This reverts commit 83b695665c05a3a9e7669e8777080c6ff10d8421.
* Revert "Hook into order query args"
This reverts commit 94cec6c83cf5b5ce05cd106daf217c0b08f13a03.
* Hide draft orders from My Account > Orders
* Move filter to its own file
* Use custom plugin namespace for filter
* Remove custom fieldconfig for shipping calculator so required fields for shipping are collected
* If the store config requires an address before shipping, do not return rates or totals
Totals, calculated by the cart, would be set to 0 in this scenario which could lead to customer confusion (why is the rate $10 but shipping shown as $0?)
* The shipping total row is missing a border
* Revert "If the store config requires an address before shipping, do not return rates or totals"
This reverts commit f3a4f24f5785392eb43bfc69a5548d398c47d8bb.
* Add hasCalculatedShipping to schema and hooks
* Show shipping notices with updated wording based on if shipping has calculated yet or not
* Refactor shipping row display to use new API props
* Remove block level isShippingCostHidden
* fix test
* Correct the math in the shipping preview in cart
* Document null
* Remove test—this option no longer exists
* Remove unused settings/constants
* Strip tags from stripe error notices
* Revise abortPayment - this does not need to provide or handle responses
* Decode entities in responseData
* Correctly handle checkoutResponse props
* Show one error at a time from express methods
* Set ID to context to avoid need to manually define it
* Move feature flag PHP logic to a service class
* Add legacy methods
* Inject a FeatureGating class instance into Package
* Make is_experimental_build and is_feature_plugin_build methods non static
* initial prototype for ExtendRestApi
* return before assign
* fix phplint errors
* declare Throwable
* remove empty init
* return initial data if shape is not correct
* Add IDENTIFIER to schema classes
* refactor ExtendRestApi to not use filters
* remove extra check
* implement ExtendRestAPI injected into StoreAPI schemas
* use $extend instead of $extend_schema
* fix phpcs issues
* update schema
* fix data type
* address review
* fix object cast
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
* add `discount_type` to store api coupons endpoints
* add `discount_type` field to coupon API docs
* add comment documenting when discount_type appeared in API response
* fix unsupported types with operators warning for PHP 8 with cart item conditional checks
* verify draft order object instance before using
* ensure per_page value is cast to integer
* correctly account for categories value and type in conditional
* add more instanceof checks
* Correct variable name in array check
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* Add missing context docs for shouldCreateAccount
* shouldCreateAccount context docs
* No need to handle showOrderNotes in component—just don't render it
* Only render notes if needed
* Create PhoneNumber component to insert when needed
Currently our repository doesn't support node 14.x and this branch of node recently became LTS so GitHub actions now default to that version. This is an attempt to force a specific version of node for the action.
* account for registration enabled setting when creating accounts
* default to false instead of global setting for initial allowCreateAccount attribute
* consider global allows signup value for whether account creation checkbox shows
* include existing hook when determining if checkout signup is available:
- woocommerce_checkout_registration_enabled hook
* use public api for registration settings (via WC_Checkout)
* initial round of test fixes
* fix logic flaw exposed by tests and align tests with actual values in real use
* return early if WC_Checkout is not available
* remove temporary test group and uncomment new test.
* improve test method name
* fix comment to match new routine name
* ensure block shows login prompt when store disables checkout signup
* fix incorrect conditional order and cover with tests
Co-authored-by: Rua Haszard <rua.haszard@automattic.com>
* Add woocommerce_blocks_checkout_order_processed action
* pass order object as well
* remove empty post data
* add prefix and docs
* pass order object
* add doc for feature flag and experimental interfaces
* add new doc to TOC
* update pull request template to include checklist item for experimental/feature flag items
* tweak wording for experimental prefix
* fix bad formatting of bold for lines
* fix double slash in url
* add missing sentence case
* remove account signup as that is not included in Cart and Checkout block logic.
* Fix typo
* generating changeset for pull request
* generating changeset for pull request
* tweak wording - testing instructions are focused on new features
* testing instructions (tbc) for 3.7.0
* link in 3.7.0
* add instructions for checkout signup
* 3.7.0 changelog
* Add missing doc links to TOC for release testing notes.
* fix typo in "replace"
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* add testing instructions for various issues fixed in 3.7
* Bumping version strings to new version.
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Rua Haszard <rua.haszard@automattic.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* expose checkout signup feature to release build (feature plugin):
- remove isExperimental from block/editor js (the block is already gated
to plugin only)
- gate entire service class to feature plugin && Woo >= 4.7
- this ensures our custom email and set password flow are only active
for supported woo version, if blocks plugin is active
- also refactored the gating logic so the woo version check is used to
gate all code
* eslint action told me to delete comment `.` ... ?
* remove experimental feature flag for checkout signup front-end:
- "Create Account?" checkbox in address/contact component
- logged-out prompt logic - handle case when signup is enabled and guest
checkout is not enabled, i.e. checkout requires automatic signup
* fix formatting issues
* add allowCreateAccount to proptypes for CheckoutForm and AddressStep