Commit Graph

1979 Commits

Author SHA1 Message Date
Thomas Roberts f708214246 Add E2E test for third-party local pickup methods (https://github.com/woocommerce/woocommerce-blocks/pull/8543)
* Add third party local pickup method to woo-test-helper plugin

* Add test to check for checkout with local pickup

* Ensure local pickup is disabled when done with tests

* Add a more reliable selector for the "use same address for billing" box

* Prevent local pickup rates showing if local pickup is not enabled

* Check billing details after placing local pickup order

* Change local pickup unit test so rates dont show if localPickup disabled

* Use existing const instead of getSetting

* Update tests to mock constant from @woocommerce/block-settings

---------

Co-authored-by: Niels Lange <info@nielslange.de>
2023-03-13 10:45:48 +07:00
Thomas Roberts 3c6229879a Add `LocalPickupSelect` component (https://github.com/woocommerce/woocommerce-blocks/pull/8634)
* Add LocalPickupSelect component

This will be used to render the local pickup options and also display a title if there are more than one package (e.g. if WC subs adds them)

* Add tests for LocalPickupSelect component

* Make title optional

* Add packageCount as an option to LocalPickupSelect

* Revert "Add packageCount as an option to LocalPickupSelect"

This reverts commit 10b1dc9497aa6c4329aee7e74e1404cb9645c3b9.

* Add ackage count to LocalPickupSelect

* Add package count and remove unused variable from renderPickupLocation
2023-03-10 07:52:21 -08:00
Albert Juhé Lluveras 705c0937a2 Remove wc-settings from Mini Cart block dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/8703) 2023-03-10 13:36:20 +01:00
Alba Rincón 98f5f67ed1 Add border support to mini cart contents (https://github.com/woocommerce/woocommerce-blocks/pull/8654)
* Add border support to mini cart contents

* Fix buttons in firefox when logged out

* Fix mini cart in all browsers

* Fix border not visible on mobile because of the admin bar

* Add feature flag to the experimental border

---------

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2023-03-10 09:25:24 +01:00
Daniel Dudzic 35860da21e Products: Update product element margins in patterns (https://github.com/woocommerce/woocommerce-blocks/pull/8401)
* Product Rating: Normalize the height of rating icons and the Add review link

* Products: Update inner blocks margins.

* Product Rating: Remove css changes from this PR.

* Products patterns: Remove px values and update the default pattern template.

---------

Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
2023-03-10 11:34:47 +05:30
Luigi Teschio 10516c3392 fix: Show sale bage on Product Image Gallery block (https://github.com/woocommerce/woocommerce-blocks/pull/8652)
* fix: show sale bage on Product Image Gallery block woocommerce/woocommerce-blocks#8528

* set multiple flag to false
2023-03-09 09:42:59 +01:00
Luigi Teschio 391105a71e Add Product Meta Block (https://github.com/woocommerce/woocommerce-blocks/pull/8484)
* Add minimum structure for Single Product Details block

* Add Product Image Gallery woocommerce/woocommerce-blocks#8233

Add Product Image Gallery

* Add tests for Single Product Details block

* Add the initial basis for the Add to Cart button

* Trigger the single product add to cart action for each product type.

* wip: create block structure and add initial styles

* Add block details to the SingleProductDetails.php file

* Rename the block from add-to-cart-button to add-to-cart-form

* Update to use the cart icon.

* Implement the skeleton for the editor preview.

* Render tabs title with empty content

* Use woocommerce_output_product_data_tabs function to retrieve tabs data

* Update styles and add Notice for the display in the Editor.

* Update CSS.

* Add base tests for the new Add to Cart Form component.

* Add Product Image Gallery block

* remove support global styles

* remove support global styles

* Update the button CSS.

* Remove customizations for the Single Product Details block

* Update styles for the cart form.

* update td style.

* Update divs and CSS.

* Use conventional input instead of the experimental InputControl

* address CSS feedback

* add support for the custom classname

* remove save function

* Remove unnecessary console.log from the Edit.tsx file

* Remove block classname from block wrapper

* Remove unnecessary WooCommerce tabs filter from the BlockTemplatesController

* Remove attributes property from the block registration

* Remove isExperimental flag for the Single Product Details block

* Remove get_classes_and_styles_by_attributes method from SingleProductDetails block

* Prevent Single Product Details block from apppearing in Pages or Posts

* add second parameter to the subscribe function

* Implement the new design and copy provided for the editor.

* Make the notice compatible with dark themes.

* Some additional CSS tweaks

* adjust the padding for the input

* wrap the Single Product Template in a div with the product class

* Fix PHP Coding Standards warnings

* improve logic and increase coverage of unit test

* improve logic and increase coverage of unit test

* fix test

* format HTML

* fix edge case

* update @types/wordpress__data package

* update placeholder, icon and description

* update tsconfig

* update block name

* fix SCSS linter error

* address feedback

* create SingleProductTemplateCompatibility class

* Add Hooks compatibility

* remove not used file

* remove not used files

* Add compatibility layer for the Single Product template

* fix check

* implement Product meta template header

* Product Price Block: Add support Single Product Template

* fix missing import

* add comment

* return a value

* improve comment

* fix import

* Add Product Meta block

* remove unnecessary change

* fix compatibility layer when the Single Product template has the classic block

---------

Co-authored-by: Alexandre Lara <allexandrelara@gmail.com>
Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
2023-03-09 09:42:40 +01:00
Albert Juhé Lluveras f65a1afe15 Mini Cart drawer close button: inherit text color and improve alignment (https://github.com/woocommerce/woocommerce-blocks/pull/8605)
* Make Mini Cart drawer close button inherit the color

* Fix Mini Cart drawer close button alignment

* Increase opacity when Mini Cart drawer close icon is hover, focused or active
2023-03-09 09:28:55 +01:00
Lucio Giannotta 61eeeb3c68 Improve Products block Attributes Filter Inspector Controls (https://github.com/woocommerce/woocommerce-blocks/pull/8583)
This PR is meant to improve the UI and UX behind the Attributes filter
within the Inspector Controls of the “Products (Beta)“ block.

Also included:

* Refactor `useProductAttributes` hook
  * Move it into the shared hooks.
  * Fetch both terms AND attributes via the API (previously,
we got the attributes from the settings, but we'd get
partial objects compared to the API? Maybe a follow-up
to this could be to check why the attributes stored in
the settings are incomplete?)
  * Make sure the return values match the ones expected
from search items.
* Remove attribute-related types from PQ directory
* Improve functionality of `SearchListControl`
  * Allow the search input to be a Token based input.
  * Allow for search input to search even collapsed properties.
  * Use core `CheckboxControl` instead of radio buttons for
items having children (includes undeterminated state).
  * Enable removal of tokens from the input
* Improve styles:
  * Refactor classnames for `SearchItem`.
  * Add more semantic classes.
  * Align count label and caret to the right.
  * Make caret switch direction on expanded.
  * `cursor: pointer` on collapsible items.
  * Indent children of collapsible items.
  * Correctly pass through class names to search item
* Enable keyboard navigation for collapsible items
* Add link to manage attributes
* Change label inside the inspector controls
* Make search list attached when token type
* Implement more sophisticated behavior of parent checkbox
  * If indeterminate or unchecked, it will check all children.
  * If checked, it will uncheck all children.
* Remove hardcoded `isSingle` from `expandableSearchListItem`
2023-03-08 17:22:51 +01:00
Albert Juhé Lluveras 3de39425c2 Remove wc-blocks-registry from Mini Cart block dependencies so more scripts can be lazy-loaded (https://github.com/woocommerce/woocommerce-blocks/pull/8657)
* Remove wc-blocks-registry from Mini Cart block so more scripts can be lazy-loaded

* Make check more reliable in case window.wc is not defined
2023-03-08 17:15:07 +01:00
Albert Juhé Lluveras 3d3f4a5dae Fix a circular dependency in CartLineItemRow (https://github.com/woocommerce/woocommerce-blocks/pull/8664) 2023-03-08 14:16:22 +01:00
Albert Juhé Lluveras 6d821202ee Move CartLineItemsTable from the Cart block directory to base-components (https://github.com/woocommerce/woocommerce-blocks/pull/8644) 2023-03-08 10:14:20 +01:00
Mike Jolley 4e581a4825 Allow view switcher to toggle view when using Gutenberg list view (https://github.com/woocommerce/woocommerce-blocks/pull/8429)
* Remove old view switcher component (not used)

* Switch in list view

* useSelect

* Optional selection of parent block on changing view

---------

Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2023-03-07 11:21:13 +00:00
Thomas Roberts 9cba7ed8ad Add tests to ensure dirty props are re-pushed if the original `pushChanges` request fails (https://github.com/woocommerce/woocommerce-blocks/pull/8648)
* Add tests for pushChanges and dirty props

* Update assets/js/data/cart/test/push-changes.ts

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

---------

Co-authored-by: Mike Jolley <mike.jolley@me.com>
2023-03-06 20:52:36 -08:00
Mike Jolley 26e7c51698 Undo dirty prop removal on error (https://github.com/woocommerce/woocommerce-blocks/pull/8633)
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
2023-03-06 16:05:38 +01:00
Luigi Teschio d08696de34 Product Price block: add support to the Single Product Template (https://github.com/woocommerce/woocommerce-blocks/pull/8609)
* Product Price Block: Add support Single Product Template

* fix missing import

* add comment

* return a value

* improve comment

* fix import
2023-03-06 15:14:08 +01:00
Niels Lange 627a11d045 Revert "Show Cart and Checkout blocks in Style Book (https://github.com/woocommerce/woocommerce-blocks/pull/8489)" (https://github.com/woocommerce/woocommerce-blocks/pull/8602)
This reverts commit 5944e229c2.
2023-03-06 12:19:08 +07:00
Alba Rincón b3db625215 Make the customer account icon bigger to match the mini-cart one (https://github.com/woocommerce/woocommerce-blocks/pull/8594)
* Make the customer account icon bigger to match the mini-cart one

* Add variation to increase the icon size for new blocks

* Improve class name

* Add variation explanation

* Add default attributes
2023-03-03 15:44:34 +01:00
Luigi Teschio 89cd344374 upgrade @types/wordpress__blocks package (https://github.com/woocommerce/woocommerce-blocks/pull/8624) 2023-03-03 12:42:50 +01:00
Alba Rincón 7245ca519e Make the start shopping button show the theme style (https://github.com/woocommerce/woocommerce-blocks/pull/8567)
* Make the start shopping button show the theme style

* Center the button

* Fix test
2023-03-03 10:55:28 +01:00
Albert Juhé Lluveras 1d0adeed28 Replace react imports with wordpress/element (https://github.com/woocommerce/woocommerce-blocks/pull/8520)
* Replace react imports with wordpress/element

* Fix TS errors

* Update a couple of React type imports
2023-03-02 15:26:00 +01:00
Alba Rincón 363fe84039 Switch Select by Toggle for the 'Add-to-Cart behaviour' (https://github.com/woocommerce/woocommerce-blocks/pull/8558) 2023-03-02 15:09:37 +01:00
Alba Rincón 8ff958a0e2 Remove colorClassName and style from QuantityBadge (https://github.com/woocommerce/woocommerce-blocks/pull/8557) 2023-03-02 15:08:09 +01:00
Niels Lange 465732aeb8 Show three Express Payments buttons in-line (https://github.com/woocommerce/woocommerce-blocks/pull/8601)
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
2023-03-02 19:47:18 +07:00
Albert Juhé Lluveras 4b82793b33 Fix Mini Cart missing translations (https://github.com/woocommerce/woocommerce-blocks/pull/8591) 2023-03-02 11:16:32 +01:00
Paulo Arromba 6483ee08d0 Added debounce to shipping rate selection on cart (https://github.com/woocommerce/woocommerce-blocks/pull/8498) 2023-03-01 13:41:20 +00:00
Patricia Hillebrandt a7f471d9ff Add to Cart Form Block > Ensure the editor preview is properly displayed with the Gutenberg plugin disabled (https://github.com/woocommerce/woocommerce-blocks/pull/8582)
* Update the editor styles for the add to cart form button so it is properly displayed with the Gutenberg plugin disabled.

* update for the input height.

* update the min-height
2023-03-01 10:39:54 +01:00
Roy Ho b9044a72df Add explicit CSS styling to mini-cart block amount in inserter preview (https://github.com/woocommerce/woocommerce-blocks/pull/8516)
* Add explicit CSS styling to mini-cart block amount in inserter preview

* Add preview specific class name

* Fix formatting
2023-02-28 09:40:06 -08:00
David Arenas 8f76d41fe2 Serialize the Interactivity API's store from PHP and hydrate it on the client (https://github.com/woocommerce/woocommerce-blocks/pull/8447)
* Update Interactivity API

* Change `wp` prefixes to `woo`

* Use `woo` prefix for the directives runtime bundle

* Update Interactivity API runtime

* Hardcode php from interactivity API

* Temporarily add gutenberg plugin as dependency

* Exclude Interactivity API files from phpcs checks

* Update Interactivity API js files

* Update Interactivity API php files

* Remove gutenberg from wp-env plugins

* Fix registered runtime paths

* Fix prefixes when getting attributes in directives

* Fix directive prefix in constants

* Avoid a Fatal error when importing `wp-html`

* Remove TODO comments from Interactivity API files

* Add missing prefix to some global functions

* Use true as value for boolean attributes

* Add `wp-html` file

* Change requires in `wp-html` with includes
2023-02-28 17:33:33 +01:00
kmanijak 630f602f49 [Blockifying Product Archive Templates]: Implement the blockified template conversion for the Classic Template Block. (https://github.com/woocommerce/woocommerce-blocks/pull/8248)
* Extract a blockified Product Archive Template to the templates

* Add templates to tsconfig.json so the files are resolved as part of the core code

* Add a encouragement note to use blockified version IF migration is available

* Add a Row block wrapping Product Results Count and Catalog Sorting blocks

* Move blockified product-archive from templates/ to assets/ directory

* Remove unnecessary margin from Product Results Count block

When used in a Row block in a blockified Archive Product template, Product Results Count had additional unnecessary margin which caused misalignment with the Catalog Sorting block

* Update the description of the Classic Template Editor placeholder

* Remove unnecessary entry in tsconfig.json to include templates directory

It was added couple of commits earlier, since the template was kept there, but it was decided to move it to assets directory, so entry is no longer necessary

* Differentiate the Classic Template placeholder description depending on the availability to convert to Products block

* Set margin for Catalog Sorting to 0, so it aligns properly when used in blockified Archive Product template

* Make the blockification config, so it covers the Product Archive as well as Single Product templates

* Move the product-archive specific functions from classic-template/index.tsx to the product-archive.ts

* Add alignment option to the Store Notices block and make the blockified template blocks aligned wide

That is required, so the Classic Template layout is preserved

* Create single-product.ts file which is a placeholder for the blockified Single Product template

* Make Blockified Product Archive template inherit the align attibute

* Simplify the interface of blockified templates

Expose  function instead of two functions for allowing and disallowing conversion

* Add a BlockifiedTemplate type

* Rename and simplify the function checking if conversion of classic template to block version is possible

* Align the variable naming to use  instead of

* Pass the Classic Template attributes to the blockified template instead of getting it from data store

* Include Breadcrumbs block in the Blockified Product Archive Template

* Consume alignment attributes of Catalog Sorting in the PHP render function

* Consume alignment attributes of Breadcrumbs in the PHP render function

* Remove align support from Catalog Sorting and add to Store Notices block

* Extend the get_classes_and_styles_by_attributes method with align and text_align attributes

* Add Archive Title block to the Blockified Classic Template

* Minor getRowBlock function refactor

* Add  property to the classic templates and base the config on it instead of placeholder

* Add separate blockified template for a Product Search Results

* Pass  attribute from classic template to No Results block in Product Search Results

* Extract the common functions between blockified archive-template and product-search-results to utils

* Enable 'Inherit query from template' in Products block by default when converting the Classic Template to blockified one

* Improve the naming of BlockifiedTemplateConfig type

* Differentiate Product Catalog and Products By * templates. The latter include Term Description block

* Change unclear ProductsBy to ProductTaxonomy in regards to classic template conversion

* Revert the margin fix which was added already on trunk

* Move the surrounding blocks as inner blocks of Products

* Hide the conversion behind the experimental build flag (as it was before)
2023-02-27 15:34:18 +01:00
Alba Rincón 90e68175cf Fix "Product Price" block margin on the "All products" block (https://github.com/woocommerce/woocommerce-blocks/pull/8518)
* Only use margin for the feature plugin

* Return empty style if no support for spacing styling
2023-02-27 14:38:45 +01:00
Mike Jolley eae93e60b8 Do not mount form until shown (https://github.com/woocommerce/woocommerce-blocks/pull/8525) 2023-02-27 11:52:57 +00:00
Mike Jolley a454e1ee0a Avoid rendering renamed props for inner blocks (https://github.com/woocommerce/woocommerce-blocks/pull/8471) 2023-02-27 11:35:12 +00:00
Seghir Nadir 2b89cbff33 Prevent double triggering select shipping on the same rate (https://github.com/woocommerce/woocommerce-blocks/pull/8497)
* Prevent selecting already selected rates

* refactor reducer

* revert changes back to only block dubplicate requests
2023-02-27 11:52:38 +01:00
Niels Lange 49b42b627f Ensure express payment buttons are visible next to each other (https://github.com/woocommerce/woocommerce-blocks/pull/8548) 2023-02-27 17:30:22 +07:00
kmanijak 87cc35678a Move usage of wordpress-components to editor and replace with @wordpress-components (https://github.com/woocommerce/woocommerce-blocks/pull/8463) 2023-02-27 11:13:00 +01:00
Patricia Hillebrandt 25b434036d Fine-tune the Add to cart form block (https://github.com/woocommerce/woocommerce-blocks/pull/8482)
* Restrict usage to the single product template.

* Update class prefix from wc to wp

* Move the add-to-cart-form block to atomic blocks so it is aligned with the updated structure adopted for single product related blocks.

* Address CR

* ditch woocommerce class.

* remove attributes key

* Add new styles to account for the removal of the .summary and .entry-summary selectors

* Narrow down the styles to the add-to-cart-form class.
2023-02-24 23:12:53 +01:00
Luigi Teschio abd8cdbcc2 Add Related Products block (https://github.com/woocommerce/woocommerce-blocks/pull/8522) 2023-02-24 16:35:43 +01:00
Saad Tarhi 9bfc8a633c Fix Payment Options settings crash in the editor (https://github.com/woocommerce/woocommerce-blocks/pull/8535) 2023-02-24 16:08:19 +01:00
Saad Tarhi 39b6c1c320 Improve the dismissal behavior of the incompatible gateways notice (https://github.com/woocommerce/woocommerce-blocks/pull/8299)
* Fix notice persistence after dismissal

- This fix applied to the `incompatible payment gateway notice`.
- We used the same dismissal logic in the `sidebar compatibility notice`

* Get incompatible payments when initialized

We initially get the list of `globalPaymentMethods` shared from
the back-end as incompatible payments, because the front-end
`availablePaymentMethods` is empty before the
`paymentMethodsInitialized` state

* Introduce advanced notice dismissal handling

We want to display a dismissed incompatible gateways notice, when the
list of incompatible gateways is updated (e.g., a new incompatible
gateway is enabled)

* Use the full block name for the `Cart` & `Checkout`

* Update variable name for comprehension

* Fix TS errors

* Remove unused imports
2023-02-24 11:57:24 +01:00
Albert Juhé Lluveras c915123afc Fix Product Price and Product Rating alignment (https://github.com/woocommerce/woocommerce-blocks/pull/8526)
* Fix Product Price and Product Rating default alignment

* Refactor get_text_align_class_and_style() to simplify the logic
2023-02-24 09:17:22 +01:00
Tarun Vijwani bbe5b70e80 Add declaration of noticeContext (https://github.com/woocommerce/woocommerce-blocks/pull/8495)
Add the declaration of noticeContext to make notice appear in the shipping calculator
2023-02-23 18:49:03 +04:00
kmanijak 23d9e1008c Add isLink attribute to the Products block title (https://github.com/woocommerce/woocommerce-blocks/pull/8519) 2023-02-23 14:00:44 +01:00
Niels Lange 5944e229c2 Show Cart and Checkout blocks in Style Book (https://github.com/woocommerce/woocommerce-blocks/pull/8489) 2023-02-23 12:29:05 +07:00
Albert Juhé Lluveras e580c1a6af Update Product Details block so it inherits more styles from the theme (https://github.com/woocommerce/woocommerce-blocks/pull/8494)
* Use wc-tabs selectors instead of tabs as WC core does

* Remove hardcoded colors from Product Details tabs
2023-02-22 09:31:20 +01:00
Tung Du 48a721c60c Update the archive templates to use Products block (https://github.com/woocommerce/woocommerce-blocks/pull/8308)Co-authored-by: Alba Rincón <alba.rincon@automattic.com>
* wip: update blockified archive templates

* Update product archive title to Shop

* Update product search template to blockified version

* new default templates, all blocks are Products block inner blocks

* revert change to fallack eligible archive templates

* remove unneccessary translated strings

* only filter the archive title on the shop page

* add missing categories header for patterns

* remove the term description block on the fly

* explain the reason for removing the term description block

---------

Co-authored-by: Alba Rincón <alba.rincon@automattic.com>
2023-02-22 08:24:04 +07:00
Albert Juhé Lluveras faa6f4ae4a Don't load opinionated button styles in themes that have button styles (https://github.com/woocommerce/woocommerce-blocks/pull/8478) 2023-02-21 15:37:41 +01:00
Albert Juhé Lluveras 081a63ab8d Fix Catalog Sorting default color in dark backgrounds (https://github.com/woocommerce/woocommerce-blocks/pull/8483) 2023-02-21 13:59:13 +01:00
kmanijak 18e6ba0659 Move the usage of Notices from @wordpress/components from frontend to editor (Filter by Rating) (https://github.com/woocommerce/woocommerce-blocks/pull/8444)
* Move Notice component usage to editor in RatingFilter

* Remove unnecessary JSdoc in Filter by Rating block
2023-02-21 11:48:52 +01:00
Daniel Dudzic 34fc847d9f All Products: Re-add alignment controls for Product Rating and Price (https://github.com/woocommerce/woocommerce-blocks/pull/8264)
* Product Rating and Price: Re-add alignment controls in the All Products context.

* Add default values to align attributes for price and rating product elements

---------

Co-authored-by: tjcafferkey <tjcafferkey@gmail.com>
2023-02-21 09:40:14 +00:00