woocommerce/plugins/woocommerce-blocks
Rua Haszard 76f5ed5030 improve responsiveness when setting cart item quantities (https://github.com/woocommerce/woocommerce-blocks/pull/1864)
* rework the quantity change generator action so the UI updates quick:
- work in progress - still need to figure out how to debounce API call
- add new action for updating quantity for an item
- don't set cart item as pending while quantity is updating
  - this leaves QuantitySelector enabled so user can click more/less
- use receiveCartItemQuantity to update quantity in UI before sending request

* debounce line item quantity first cut:
- use local state for quantity, so ui allows multiple clicks up/down
- debounce store updates (and server/API call)

* correct comment on cart item quantity reducer

* remove recieveCartItemQuantity - no longer needed

* remove delegation for deleted RECEIVE_CART_ITEM_QUANTITY

* only update quantity in component sideffect if it has changed:
- reduces unnecessary renders

* factor out debounced quantity update into cartItem hook (hat tip @senadir)

* use quantity from store, instead of passing in to hook +
+ fix latent bug in useStoreCartItem - the cartItem value is now object:
  - was previously single-item array
  - (note no client code is using this at present)

* tidy/refactor cart item hook - separate dispatch from select

* remove dud reset of item pending flag (came back in rebase)

* add quantity to StoreCartItem hook return value typedef

* fix js error when adding cart block in editor – cartItem not found

* fix typedef

* fix logic for debouncing

* don’t update quantity on server unnecessarily

Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
2020-03-09 15:09:47 +13:00
..
.github Re-organise docs and add WP update instructions (https://github.com/woocommerce/woocommerce-blocks/pull/1691) 2020-01-31 12:48:11 +00:00
.sources New block: Filter Products by Price (https://github.com/woocommerce/woocommerce-blocks/pull/853) 2019-11-01 13:56:14 +00:00
assets improve responsiveness when setting cart item quantities (https://github.com/woocommerce/woocommerce-blocks/pull/1864) 2020-03-09 15:09:47 +13:00
bin Update plugin zip build script with additional options. (https://github.com/woocommerce/woocommerce-blocks/pull/1893) 2020-03-08 21:59:31 -04:00
docs Update plugin zip build script with additional options. (https://github.com/woocommerce/woocommerce-blocks/pull/1893) 2020-03-08 21:59:31 -04:00
src Checkout Block: Add Legal links (https://github.com/woocommerce/woocommerce-blocks/pull/1881) 2020-03-06 12:20:17 +00:00
storybook Basic storybook implementation (https://github.com/woocommerce/woocommerce-blocks/pull/1636) 2020-01-31 09:59:14 +13:00
tests Checkout Block: Add Legal links (https://github.com/woocommerce/woocommerce-blocks/pull/1881) 2020-03-06 12:20:17 +00:00
.editorconfig Introduce legacy build system and new aliases (https://github.com/woocommerce/woocommerce-blocks/pull/1018) 2019-10-06 08:36:15 -04:00
.env Fix wp-cli container permissions issues for e2e docker test environment (https://github.com/woocommerce/woocommerce-blocks/pull/1716) 2020-02-11 11:13:20 -05:00
.eslintignore Install prettier and reformat files (https://github.com/woocommerce/woocommerce-blocks/pull/945) 2019-09-05 17:09:31 +02:00
.eslintrc.js Fix wp-cli container permissions issues for e2e docker test environment (https://github.com/woocommerce/woocommerce-blocks/pull/1716) 2020-02-11 11:13:20 -05:00
.gitattributes CSS naming convention docs (https://github.com/woocommerce/woocommerce-blocks/pull/1653) 2020-01-28 15:50:57 +00:00
.gitignore Product search block e2e test (https://github.com/woocommerce/woocommerce-blocks/pull/1712) 2020-02-11 12:23:23 -05:00
.nvmrc Adds continuous integration testing with travis (https://github.com/woocommerce/woocommerce-blocks/pull/156) 2018-11-27 12:12:48 -05:00
.prettierrc Fix increment bug in withComponentId (https://github.com/woocommerce/woocommerce-blocks/pull/951) 2019-09-07 08:04:34 -04:00
.stylelintrc.json Add stylelint to find and fix css code style issues (https://github.com/woocommerce/woocommerce-blocks/pull/126) 2018-11-15 10:45:49 -05:00
.travis.yml Fix failing travis e2e tests (environment caused) (https://github.com/woocommerce/woocommerce-blocks/pull/1856) 2020-03-03 11:08:53 -05:00
README.md Remove broken links from README.md (https://github.com/woocommerce/woocommerce-blocks/pull/1792) 2020-02-21 18:22:06 +01:00
babel.config.js Fix wp-cli container permissions issues for e2e docker test environment (https://github.com/woocommerce/woocommerce-blocks/pull/1716) 2020-02-11 11:13:20 -05:00
composer.json fix composer config and regenerate composer.lock (https://github.com/woocommerce/woocommerce-blocks/pull/1732) 2020-02-14 11:04:10 +00:00
composer.lock fix composer config and regenerate composer.lock (https://github.com/woocommerce/woocommerce-blocks/pull/1732) 2020-02-14 11:04:10 +00:00
docker-compose.yaml Fix wp-cli container permissions issues for e2e docker test environment (https://github.com/woocommerce/woocommerce-blocks/pull/1716) 2020-02-11 11:13:20 -05:00
package-lock.json Update babel monorepo to v7.8.6 (https://github.com/woocommerce/woocommerce-blocks/pull/1859) 2020-03-04 13:01:11 +00:00
package.json Update plugin zip build script with additional options. (https://github.com/woocommerce/woocommerce-blocks/pull/1893) 2020-03-08 21:59:31 -04:00
phpcs.xml Update NPM dependencies and script dependency handling (https://github.com/woocommerce/woocommerce-blocks/pull/1337) 2019-12-10 12:17:46 -05:00
phpunit.xml.dist Move main controllers from assets/php to src (https://github.com/woocommerce/woocommerce-blocks/pull/655) 2019-07-01 13:52:44 +01:00
postcss.config.js Create Reviews by Product block (https://github.com/woocommerce/woocommerce-blocks/pull/658) 2019-08-15 16:55:57 +02:00
readme.txt add changelog from 2.5.14 2020-03-04 07:29:14 -05:00
renovate.json Update renovate to assign `type: dependencies` label for pulls (https://github.com/woocommerce/woocommerce-blocks/pull/1648) 2020-01-27 10:37:09 -05:00
tsconfig.json Checkout form options to control field visibility (https://github.com/woocommerce/woocommerce-blocks/pull/1868) 2020-03-05 13:06:47 +00:00
webpack.config.js Switch lint:js command to use wp-scripts and address errors. (https://github.com/woocommerce/woocommerce-blocks/pull/1837) 2020-02-28 16:54:07 -05:00
woocommerce-gutenberg-products-block.php Update WooCommerce tested version up to 4.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1768) 2020-02-18 14:51:25 +01:00

README.md

WooCommerce Product Blocks

Feature plugin for WooCommerce + Gutenberg. This plugin serves as a space to iterate and explore new Blocks for WooCommerce, and how WooCommerce might work with the block editor.

If you're just looking to use these blocks, update to the latest version of WooCommerce! The blocks are bundled into WooCommerce since version 3.6, and can be added from the "WooCommerce" section in the block inserter.

Documentation

To find out more about the blocks and how to use them, check out the documentation on WooCommerce.com.

If you want to see what we're working on for future versions, or want to help out, read on.

Table of Contents

Installing the stable version

We release a new version of WooCommerce Blocks onto WordPress.org every few weeks, which can be used as an easier way to preview the features.

  1. Make sure you have WordPress 5.0+ and WooCommerce 3.7+
  2. The stable version is available on WordPress.org. Download the stable version here.
  3. Activate the plugin.

Installing the development version

  1. Make sure you have WordPress 5.0+ and WooCommerce 3.7+
  2. Get a copy of this plugin using the green "Clone or download" button on the right.
  3. npm install to install the dependencies.
  4. composer install to install core dependencies.
  5. npm run build (build once) or npm start (keep watching for changes) to compile the code.
  6. Activate the plugin.

The source code is in the assets/ folder and the compiled code is built into build/.

Getting started with block development

Run through the "Writing Your First Block Type" tutorial for a quick course in block-building.

For deeper dive, try looking at the core blocks code, or see what components are available.

To begin contributing to the WooCommerce Blocks plugin, see our getting started guide and developer handbook.

Other useful docs to explore:

Vision for the Feature

Users should be able to insert a variety of products from their store (specific products, products in a category, with assorted layouts and visual styles, etc.) into their post content using a simple and powerful visual editor.