2db29164f9
* Update to pnpm 9.1 and fix a mini css bug * Add changefile(s) from automation for the following project(s): @woocommerce/tracks, @woocommerce/product-editor, @woocommerce/onboarding, @woocommerce/number, @woocommerce/notices, @woocommerce/navigation, @woocommerce/internal-js-tests, @woocommerce/extend-cart-checkout-block, @woocommerce/expression-evaluation, @woocommerce/explat, @woocommerce/experimental, @woocommerce/eslint-plugin, @woocommerce/dependency-extraction-webpack-plugin, @woocommerce/date, @woocommerce/data, @woocommerce/customer-effort-score, @woocommerce/currency, @woocommerce/csv-export, @woocommerce/create-woo-extension, @woocommerce/create-product-editor-block, @woocommerce/components, @woocommerce/api, @woocommerce/ai, @woocommerce/admin-e2e-tests, woocommerce-blocks, woocommerce-beta-tester, woocommerce, woo-ai * temporarily disable swallowing build output to diagnose issue with perf workflow * Ignore some type issues that commonly resurface when deps slightly change * Fix persistent type issues that have recurred many times * Add more ignores * Fix lint issue * Revert change to swallow build error * Improve access of the config that needs updated build dir. --------- Co-authored-by: github-actions <github-actions@github.com> |
||
---|---|---|
.. | ||
changelog | ||
src | ||
.eslintrc.js | ||
.npmrc | ||
CHANGELOG.md | ||
PREVIOUS_CHANGELOG.md | ||
README.md | ||
babel.config.js | ||
composer.json | ||
composer.lock | ||
jest.config.json | ||
package.json | ||
tsconfig-cjs.json | ||
tsconfig.json |
README.md
Navigation
A collection of navigation-related functions for handling query parameter objects, serializing query parameters, updating query parameters, and triggering path changes.
Installation
Install the module
pnpm install @woocommerce/navigation --save
Usage
getHistory
A single history object used to perform path changes. This needs to be passed into ReactRouter to use the other path functions from this library.
import { getHistory } from '@woocommerce/navigation';
render() {
return (
<Router history={ getHistory() }>
…
</Router>
);
}
getPath() ⇒ String
Get the current path from history.
Returns: String
- Current path.
getTimeRelatedQuery(query) ⇒ Object
Gets time related parameters from a query.
Returns: Object
- Object containing the time related queries.
Param | Type | Description |
---|---|---|
query | Object |
Query containing the parameters. |
getIdsFromQuery(queryString) ⇒ Array
Get an array of IDs from a comma-separated query parameter.
Returns: Array
- List of IDs converted to an array of unique integers.
Param | Type | Description |
---|---|---|
queryString | string |
string value extracted from URL. |
getNewPath(query, path, currentQuery) ⇒ String
Return a URL with set query parameters.
Returns: String
- Updated URL merging query params into existing params.
Param | Type | Description |
---|---|---|
query | Object |
object of params to be updated. |
path | String |
Relative path (defaults to current path). |
currentQuery | Object |
object of current query params (defaults to current querystring). |
getQuery() ⇒ Object
Get the current query string, parsed into an object, from history.
Returns: Object
- Current query object, defaults to empty object.
onQueryChange(param, path, query) ⇒ function
This function returns an event handler for the given param
Returns: function
- A callback which will update param
to the passed value when called.
Param | Type | Description |
---|---|---|
param | string |
The parameter in the querystring which should be updated (ex page , per_page ) |
path | string |
Relative path (defaults to current path). |
query | string |
object of current query params (defaults to current querystring). |
updateQueryString(query, path, currentQuery)
Updates the query parameters of the current page.
Param | Type | Description |
---|---|---|
query | Object |
object of params to be updated. |
path | String |
Relative path (defaults to current path). |
currentQuery | Object |
object of current query params (defaults to current querystring). |
flattenFilters(filters) ⇒ Array
Collapse an array of filter values with subFilters into a 1-dimensional array.
Returns: Array
- Flattened array of all filters.
Param | Type | Description |
---|---|---|
filters | Array |
Set of filters with possible subfilters. |
getActiveFiltersFromQuery(query, config) ⇒ Array.<activeFilters>
Given a query object, return an array of activeFilters, if any.
Returns: Array.<activeFilters>
- - array of activeFilters
Param | Type | Description |
---|---|---|
query | object |
query oject |
config | object |
config object |
getDefaultOptionValue(config, options) ⇒ string
| undefined
Get the default option's value from the configuration object for a given filter. The first option is used as default if no defaultOption
is provided.
Returns: string
| undefined
- - the value of the default option.
Param | Type | Description |
---|---|---|
config | object |
a filter config object. |
options | array |
select options. |
getQueryFromActiveFilters(activeFilters, query, config) ⇒ object
Given activeFilters, create a new query object to update the url. Use previousFilters to Remove unused params.
Returns: object
- - query object representing the new parameters
Param | Type | Description |
---|---|---|
activeFilters | Array.<activeFilters> |
activeFilters shown in the UI |
query | object |
the current url query object |
config | object |
config object |
getUrlKey(key, rule) ⇒ string
Get the url query key from the filter key and rule.
Returns: string
- - url query key.
Param | Type | Description |
---|---|---|
key | string |
filter key. |
rule | string |
filter rule. |
activeFilter : Object
Describe activeFilter object.
Properties
Name | Type | Description |
---|---|---|
key | string |
filter key. |
[rule] | string |
a modifying rule for a filter, eg 'includes' or 'is_not'. |
value | string |
filter value(s). |