d613d2fde6
* Basic block construction * Register on PHP side * wc-active-filters script * Price utils * Refactor price slider so state reflects the query Moves some logic from the component to the block so that min and max price can change (via query) and be reflected by the price sliders. This allows the active filters block to change the query and have those new values reflected by the slider. * Fix type checking of numbers * Styles for filter block * Improved attribute helper for getting attribute taxonomy data from ID/taxonomy * Refactor attribute filter to use updateAttributeFilter helper * Disable checkboxes when loading to avoid multiple queries * Add todos - this is blocked * Remove checked state from Attribute Filter so it gets updated from the store (https://github.com/woocommerce/woocommerce-blocks/pull/1170) * isLoading check * active price filtering rendering * Block heading * Implement block options; chip display with clear button * Clear all should remove all attributes * Enable previews * Introduce a component to look up terms from slugs using collections (which are cached) * Correct all docblocks * activePriceFilters null return * renderRemovableListItem * Remove useMemo for hasFilters * Switch classnames notation * Ensure slug is array in removeAttributeFilterBySlug * null -> undefined return types for attributes * Remove fragment * Check we have a termObject in ActiveAttributeFilters * Refactor formatPriceRange return statements * Ensure query array index will exist * Only sort when adding a query * Remove aria-label with dupe text * hasFilters is function * Update useQueryStateByKey usage * More doc block fixes * Update getAttributeFromTaxonomy return and docblock * getAttributeFromID return/docblock |
||
---|---|---|
.. | ||
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.