Commit Graph

513 Commits

Author SHA1 Message Date
Tung Du e60405689d Mini Cart block: add footer (subtotal, cart & checkout buttons and payment method icons) (https://github.com/woocommerce/woocommerce-blocks/pull/4982)
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-10-28 22:48:39 +07:00
Albert Juhé Lluveras edaf0f094d Run BlockTemplatesController filter only on templates (https://github.com/woocommerce/woocommerce-blocks/pull/5027) 2021-10-28 15:33:42 +02:00
Ovidiu Liuta 5b2d24da36 Fix: Adding a visual border to products image placeholder (https://github.com/woocommerce/woocommerce-blocks/pull/4950)
* fixing all products image placeholder border

* fixing grid placeholder image border

* fixing cart checkout product image placeholder border

* order summary product image placeholder border fix

* revert fixing cart checkout product image placeholder border

* fixing product elements atomic block placeholder border

* fixing failing tests for cart-checkout test and class rename

* adding border style mixin

* newline addon

* linting fix and esc_attr addon

* adding border color to _colors.scss abstracts

* fixing cart-checkout block scss color

* removing class names from product-elements atomic block placeholder images

* css linting fix

* css linting fix

* css linting fix

* fixing empty className in cart-checkout

* adding cart-checkout fallback alt text to product name and css changes empty alt placeholder

* adding image fallback alt to AbstractProductGrid

* updating checkout snapshot to include alt

* code style changes

* removing unused scss code

* adding img alt style fix to prevent global changes
2021-10-28 13:57:20 +01:00
Michael P. Pfeiffer b5bb42e799 Update version following release 2021-10-28 09:10:37 +02:00
github-actions[bot] 5454667fa6 Release: 6.2.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4990)
* Empty commit for release pull request

* Update readme.txt with release changelog

* Add testing instructions for 6.2.0 release

* Return an element instead of a component in useViewSwitcher (https://github.com/woocommerce/woocommerce-blocks/pull/5016)

* return element instead of component in viewSwitcher

* use ToolbarGroup instead of Toolbar

(cherry picked from commit ad133ba901)

* Update release zip in testing note

* Bumping version strings to new version.

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Michael P. Pfeiffer <michael@cssconf.eu>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2021-10-28 09:04:30 +02:00
Seghir Nadir b6c314f0d4 Use Cart's needs payment check instead of Order's (https://github.com/woocommerce/woocommerce-blocks/pull/4955)
* Revert "Fix free orders missing payment method (https://github.com/woocommerce/woocommerce-blocks/pull/4854)"

This reverts commit 60f82537f1.

* use Cart needs payment instead of Order needs payment

* switch to nullish coalescing

* remove extra line
2021-10-26 10:42:39 +01:00
Seghir Nadir 2408e34faa Migrate Cart i1 to Cart i2 (https://github.com/woocommerce/woocommerce-blocks/pull/4973)
* move empty cart

* remove Cart and rename Cart i2 to Cart

* graduate blocks

* setup template migration from Cart i1 to Cart i2

* back to js so we have a good diff

* add migration

* fix bug in empty cart template

* add useForceLayout hook to edit

* migrate from old block to new block

* migrate styles

* respect align

* add tests

* Include latest cart line item improvements from cart-i1

* Missing changes from cart-i1

* Line items table should be disabled

* Fix e2e tests for cart i2

* update tests to adapt for inner blocks

* update select to resolveSelect to remove warning checker

* rename test/block to test/index

* move blocks to their own file

* undo rename to keep diff clean

* remove .tsx and update jest config

* Revert "update select to resolveSelect to remove warning checker"

This reverts commit 79d55de30edcfe36bbdfe7506df7a09460824f03.

* revert resolveControl

* Fix empty cart editor E2E test by scrolling to the view switch

* parse attributes for order summary block

* migrate attributes when resaving

* Update documentation

Automatic update after running npm run build:docs

* add align options to filled cart and empty cart

* append instead of replcae

* import style.scss in frontend

Co-authored-by: Mike Jolley <mike.jolley@me.com>
Co-authored-by: Raluca Stan <ralucastn@gmail.com>
2021-10-25 15:46:34 +01:00
Tom Cafferkey 35d49f1583 BlockTemplateController (https://github.com/woocommerce/woocommerce-blocks/pull/4981)
* BlockTemplateController

* Check if theme already has template

* ThemeUtils file to check for FSE enabled themes

* Use Gutenberg global gutenberg_supports_block_templates

* Remove ThemeUtils reference

* Update with code review comments

* Delete ThemeUtils and move supports_block_templates check

* Duplicate functions from Gutenberg into Utils file

* Remove template file

* Check template directory and stylesheet directory for template
2021-10-25 10:45:50 +01:00
Mike Jolley 4b0f975707 Force array type for valid states (https://github.com/woocommerce/woocommerce-blocks/pull/4975) 2021-10-20 16:29:21 +01:00
Mike Jolley 2e0d0faa84 Enforce valid states from the API (https://github.com/woocommerce/woocommerce-blocks/pull/4844)
* Enforce valid states from the API

* Remove paypal from test
2021-10-19 14:30:02 +01:00
Mike Jolley 901a78979e Fix positioning of default locked blocks in the editor and frontend (https://github.com/woocommerce/woocommerce-blocks/pull/4937)
* Update default empty template on server side

* template->registeredBlocks wording

* useForcedLayout: insert in correct place

* Remove test div

* Clarify inline docs

* Apply changes to cart block
2021-10-15 10:48:57 +01:00
Mike Jolley 749c0d2dfc Remove duplicate data attributes (https://github.com/woocommerce/woocommerce-blocks/pull/4941)
* Remove inject_html_data_attributes

* Exclude class/align attributes from injection
2021-10-14 13:36:03 +01:00
Thomas Roberts db34f28c4f Version bump following release 2021-10-13 15:41:47 +01:00
Mike Jolley cf7d5d8d53 Add hook documentation and build script (https://github.com/woocommerce/woocommerce-blocks/pull/4927)
* Script to generate hook docs

* Inline docs for action and filter hooks

* __experimental_woocommerce_blocks_checkout_order_processed example

* Update doc generation

* Document exceptions

* examples

* Fix a typo

* Remove unused dependency

* add platform override for phpunit tests
2021-10-13 10:45:59 +01:00
github-actions[bot] a6607cd94f Release: 6.1.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4924)
* Empty commit for release pull request

* Update readme.txt with release changelog

* Add testing instructions for 6.1.0 release

* Update readme.txt with release changelog

* woocommerce/woocommerce-blocks#4625 product categories list block hierarchy display fix (https://github.com/woocommerce/woocommerce-blocks/pull/4920)

* Update link to testing zip

* Remove mini cart testing from instructions

This is because mini-cart is only in experimental builds.

* Update changelog and testing notes

* Correct typo in testing instructions

* Update testing instructions

* Bumping version strings to new version.

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Ovidiu Liuta <ovidiu.liuta@automattic.com>
2021-10-12 15:09:46 +01:00
Ovidiu Liuta d6e0729c79 woocommerce/woocommerce-blocks#4625 product categories list block hierarchy display fix (https://github.com/woocommerce/woocommerce-blocks/pull/4920) 2021-10-12 11:36:35 +01:00
Seghir Nadir eb9b8ab233 Revert "Display the notices registered by the payment gateway's process_payment() method (https://github.com/woocommerce/woocommerce-blocks/pull/4871)" (https://github.com/woocommerce/woocommerce-blocks/pull/4923)
This reverts commit 494df12859.
2021-10-11 17:00:47 +01:00
Mike Jolley caaa4f5ac4 Handle translations in lazy loaded files by injecting them into the page (https://github.com/woocommerce/woocommerce-blocks/pull/4897)
* Formalise chunk names

* register_chunk_translations()

* Rename handle

* Include fileSuffix

* Remove .chunk prefix- it broke the vendors chunk
2021-10-11 16:32:29 +01:00
Thomas Roberts 9fbfb5a594 Update percent of users who will see inbox notification (https://github.com/woocommerce/woocommerce-blocks/pull/4922) 2021-10-11 15:22:18 +01:00
Danae Millan 494df12859 Display the notices registered by the payment gateway's process_payment() method (https://github.com/woocommerce/woocommerce-blocks/pull/4871)
We were displaying a generic error and clearing the notices before. Now we convert them to exceptions so they're actually displayed.
2021-10-09 11:46:35 -03:00
Chouby ea4fecaa31 Prefix the input id with wc- instead of wp- (https://github.com/woocommerce/woocommerce-blocks/pull/4882) 2021-10-08 10:27:03 +01:00
Tom Cafferkey ee84901ab8 AttributePicker: Set default values if they exist (https://github.com/woocommerce/woocommerce-blocks/pull/4815)
* Update API to add default boolean to attribute values and use this within the component to set the default attributes.

* Modify and add unit tests for isObject and getDefaultAttributes

* Sanitize attribute name to accommodate for custom attributes being default values.

* Comments for sanitized_attribute_name variable

* Remove second argument from getAttributes
2021-10-06 09:48:13 +01:00
Tung Du edce72e2fb Mini Cart block: improve button accessibility (https://github.com/woocommerce/woocommerce-blocks/pull/4852) 2021-10-04 10:54:28 +07:00
Seghir Nadir 1bdb9b51c8 Don't fire woocommerce_blocks_loaded if WC version is not met (https://github.com/woocommerce/woocommerce-blocks/pull/4873) 2021-09-30 12:42:07 +01:00
Nadir Seghir db66734fd4 update versions and fix changelog date, closes woocommerce/woocommerce-blocks#4869 2021-09-29 14:57:32 +01:00
Seghir Nadir 77e3da81b2 Checkout i2: support odd classes when transforming from Checkout i1 to Checkout i2 (https://github.com/woocommerce/woocommerce-blocks/pull/4866)
* support odd classes for Checkout

* support classNames at start of string

* keep classNames and aligment on frontend
2021-09-29 11:54:50 +01:00
Ricardo Metring 60f82537f1 Fix free orders missing payment method (https://github.com/woocommerce/woocommerce-blocks/pull/4854) 2021-09-28 12:30:48 -03:00
Seghir Nadir b6167bc179 Cart i2: Render filled and empty Carts on frontend (https://github.com/woocommerce/woocommerce-blocks/pull/4802)
* WIP getting to work on frontend

* restore frontend.tsx

* fix layout

* remove unit tests living where they shouldn't be living

* remove skeleton

* support emtpy cart in frontend

* remove extra todo

* use fragment instead of div

* Add empty cart event

* Remove extra fragment
2021-09-23 16:38:30 +01:00
Tom Cafferkey 445f8175a1 Throw an exception if there is no selected shipping method on an item… (https://github.com/woocommerce/woocommerce-blocks/pull/4784)
* Throw an exception if there is no selected shipping method on an item that needs shipping

* Update src/StoreApi/Utilities/OrderController.php for ensure error message ends with a period.

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

Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
2021-09-21 10:31:52 +01:00
Seghir Nadir f44784ffca Create Cart i2 block (https://github.com/woocommerce/woocommerce-blocks/pull/4718) 2021-09-17 16:29:58 +01:00
Albert Juhé Lluveras c07fef9e57 Make All Reviews block honor 'ratings enabled' and 'show avatars' preferences (https://github.com/woocommerce/woocommerce-blocks/pull/4764)
* Make All Reviews block honor 'ratings enabled' and 'show avatars' preferences

* Only add space for image if image is rendered
2021-09-17 11:19:22 +02:00
Mike Jolley 5c08c75612 Update Checkout to Checkout i2 (https://github.com/woocommerce/woocommerce-blocks/pull/4745)
* Remove i2 from build

* Remove i2 php registration

* Rename old checkout dir

* Rename i2 dir

* Migrate i1 to i2 code

* Register block metadata to fix frontend rendering when migrating to i2

* Register in correct order

* Missing styles

* add register-components to side effectful list

* wrong block class in e2e test

* wp prefix missing on selector

* Fix top level block test

* Reselect labels to work around rerendering

* missing empty cart styles

* Consolodate duplicate styles

* remove init code

* update selectBlockByName

Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
2021-09-16 13:16:21 +01:00
Thomas Roberts 51d15b3d19 Bump version numbers
I did not update all the version numbers in all of the correct places during the release.
2021-09-16 10:41:20 +01:00
Albert Juhé Lluveras e216a7c90c Fix calculation of number of reviews in Reviews by Category block (https://github.com/woocommerce/woocommerce-blocks/pull/4729)
* Remove unused code

* Fix incorrect number of reviews in Reviews by Category block

* Add error handling around get_term_children()
2021-09-15 11:58:00 +02:00
github-actions[bot] 99b55a2382 Release: 5.9.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4731)
* Empty commit for release pull request

* Update changelog in readme

* Update testing instructions for 5.9.0

* Update testing instructions for 5.9.0 to include screenshots and smoke test

* Remove 4545 from testing notes and changelog

* Update testing instructions for 5.9.0 to include new test plugin zip

* Update testing instructions from postcode to city

* Rename usages of className to class in ProductSearch.php (https://github.com/woocommerce/woocommerce-blocks/pull/4740)

* Update zip file

* Update changelog in readme.txt

* Update testing instructions

* Update testing instructions

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
2021-09-14 15:01:29 +01:00
Thomas Roberts 8d0d031381 Rename usages of className to class in ProductSearch.php (https://github.com/woocommerce/woocommerce-blocks/pull/4740) 2021-09-14 12:37:24 +01:00
Thomas Roberts 6e141e6b62 Add inbox notification to surface cart and checkout blocks to select merchants (https://github.com/woocommerce/woocommerce-blocks/pull/4518)
* Add InboxNotifications class

This will be used to handle displaying the inbox notification to select merchants

* Show inbox notifications on load

* Update copy in inbox notification

* Update URL and percent chance for a user to be chosen

* Add apostrophe to notification content

* Only register notifications when woocommerce_init is done

* Wait for admin to load before adding note

* Add further disallowed plugins

* Allow notification to be shown when using WC Points and Rewards

* Remove timestamp and content data from the note

This isn't necessary and was only added for testing.

* Check for existence of note based on name instead of content_data

* Create delete note function

We'll be deleting notes in the case that an ineligible plugin becomes active.

* Reorder the eligible plugin and % targeting check

This will let us target a truer % of users, and also will let us delete the note if a user activates an ineligible plugin.

* Remove code which was added for testing purposes

The code to return if the feature plugin was active was enabled, woocommerce-gutenberg-products-block was added as an ineligible plugin.
2021-09-13 12:36:51 +01:00
Albert Juhé Lluveras decfe6c501 Open Mini Cart block when adding a product to cart via an AJAX call (https://github.com/woocommerce/woocommerce-blocks/pull/4666) 2021-09-07 10:27:16 +02:00
Albert Juhé Lluveras c99a4e4ace Don't allow opening the Mini Cart in the Cart and Checkout pages (https://github.com/woocommerce/woocommerce-blocks/pull/4680) 2021-09-06 13:56:33 +02:00
Mike Jolley b385d4005c Refactor Checkout Inner Block Registration and Render frontend forced blocks (https://github.com/woocommerce/woocommerce-blocks/pull/4671)
* 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
2021-09-03 14:25:09 +01:00
Mike Jolley 7e7cf87dc0 Enqueue frontend assets on frontend only (https://github.com/woocommerce/woocommerce-blocks/pull/4675) 2021-09-03 10:04:21 +01:00
Albert Juhé Lluveras f3ec10a89c Add Drawer component (https://github.com/woocommerce/woocommerce-blocks/pull/4608)
* 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
2021-09-02 11:44:25 +02:00
Darren Ethier 36fd4c1684 Update versions after release 2021-08-31 14:42:14 -04:00
github-actions[bot] a436c7bfe6 Release: 5.8.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4656)
* 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>
2021-08-31 14:37:57 -04:00
Thomas Roberts 4655bcf3d2 Remove checkout-newsletter-subscription-block from get_atomic_blocks (https://github.com/woocommerce/woocommerce-blocks/pull/4660) 2021-08-31 16:49:20 +01:00
Seghir Nadir a269dd882c Checkout i2: Handle forced blocks in editor (https://github.com/woocommerce/woocommerce-blocks/pull/4606)
* 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>
2021-08-31 13:38:51 +01:00
Mike Jolley 64fffd7051 Experimental newsletter subscription checkbox block POC and Store API supporting changes (https://github.com/woocommerce/woocommerce-blocks/pull/4607)
* 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>
2021-08-30 15:35:20 +01:00
Albert Juhé Lluveras 912a1704e0 Disable Cart, Checkout, All Products & filters blocks from the widgets screen (https://github.com/woocommerce/woocommerce-blocks/pull/4646) 2021-08-30 09:10:55 +02:00
Albert Juhé Lluveras 2b2631d7ab Add Mini Cart block in experimental builds (https://github.com/woocommerce/woocommerce-blocks/pull/4510)
* 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
2021-08-25 17:42:55 +02:00
Mike Jolley 581769886a Update checkout route hooks to support extensions (https://github.com/woocommerce/woocommerce-blocks/pull/4610)
* 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>
2021-08-25 11:29:45 +01:00