69ba8161b6
* convert eslint config to use @woocommerce/eslint-plugin - removes unnecessary dependencies - adds e2e-tests/specs to eslint ignore (they are automatically generated) - turns off rules that will be handled in subsequent pulls (to avoid a mammoth changeset for review). - NOTE: prettier config needs left in because of a bug with the existing version of `@wordpress/eslint-plugin` pulled in (fixed in https://github.com/WordPress/gutenberg/pull/25068) so I left the file for now. * prettier fixes. * remove obsolete plugin and fixes for eslint update This branch brings an update to eslint which also changes some syntax with plugins. So this commit: - fixes featuer-flag plugin syntax. - removed obsolete dependency-group plugin (which is now in the `@woocommerce/eslint-plugin` configuration. * add to-do comment * fixes for test runs - this also converts our e2e test scripts to use `wp-script test:e2e`, an advantage of this is it will load CHROMIUM on demand for the e2e test run. * fixes for test runs - this also converts our e2e test scripts to use `wp-script test:e2e`, an advantage of this is it will load CHROMIUM on demand for the e2e test run. * include prettier alias as a dependency This has to be done because prettier is installed with storybook and thus the alias setup in `@wordpress/scripts` is over-ridden by the storybook import. * another attempt at e2e-test-fix * add some debugging and temporarily just add one e2e config test for travis * more debugging * try installing full puppeteer and see if fixes * fix package-lock? * setupSettings separately from other fixture loading * add debugging of files * add another console.log (hopefully trigger travis) * split out blockPage creation to it’s own as well * fixed! remove debugging and re-enable travis configs for entire test suite * fix config and rename e2e-tests to e2e - fixes the failing product-search test - tests/e2e-tests was redundant, I changed to `tests/e2e` (this follows a file pattern change made in woocommerce core as well). * add todo for some eslint properties * remove unnecessary early function execution * revert earlier commit and remove duplicate call to createBlockPages |
||
---|---|---|
.. | ||
test | ||
README.md | ||
action-types.js | ||
actions.js | ||
constants.js | ||
index.js | ||
reducers.js | ||
resolvers.js | ||
selectors.js | ||
utils.js |
README.md
Schema Store
To utilize this store you will import the SCHEMA_STORE_KEY
in any module referencing it. Assuming @woocommerce/block-data
is registered as an external pointing to wc.wcBlocksData
you can import the key via:
import { SCHEMA_STORE_KEY } from '@woocommerce/block-data';
Actions
The following actions are used for dispatching data to this store state.
Note: You should rarely need to use any of these actions directly as they are mostly used internally by the resolvers.
receiveRoutes( routes, namespace = '/wc/blocks' )
This returns an action object used to update the store with the provided list of resource routes.
Argument | Type | Description |
---|---|---|
routes |
Array | This should be an array of routes attached for the given namespace. Eg. [ '/wc/blocks/products', '/wc/blocks/products/attributes/(?P<id>[\d]+)' ] |
namespace |
string | The namespace the routes belong to (eg. /wc/blocks ) |
Selectors
getRoute( namespace, resourceName, ids = [] )
This is used for retrieving a route for the given namespace, resource name and (if necessary) ids.
Example: If you are looking for a route for a single product on the wc/blocks
namespace, then you'd have [20]
as the ids.
// '/wc/blocks/products/20'
wp.data.select( SCHEMA_STORE_KEY ).getRoute( '/wc/blocks', 'products', [20] );
Argument | Type | Description |
---|---|---|
namespace |
string | Namespace for the route (eg. /wc/blocks ) |
resourceName |
string | The resource name for the route (eg. products/attributes/terms ) |
ids |
array | Only needed if the route has placeholders for ids. |
getRoutes( namespace )
This will return all the registered routes for the given namespace as a flat array.