8e61f55017
* Use yarn instead of npm. In prep for workspaces, since we're locked to npm < 7. See: https://github.com/woocommerce/woocommerce-admin/pull/7126#issue-661287749 * Initial workspace creation. * Add initial tsc build to @woocommerce/number. * Attempt to build experimental package. * Try currency package. * Define all packages as workspaces. * Use tsconfig common to packages. * Fix currency package build. * Build csv-export with tsc. * Try to build customer-effort-score with tsc. * Fix JSX pragma. * Build data package with tsc. * Build date package with tsc. * Build experimental package with tsc. * Try to build explat package with tsc. * Build navigation package with tsc. * Build notices package with tsc. * Build onboarding package with tsc. * Build components package with tsc. * Swap in package JS build into main script. * Fix experimental package build. * Try per-package css build with components. * Try to run components package tests in isolation. Broken on JSX in test files not being transformed. * Move @woocommerce/wc-admin-settings into a package. * Try to fix components package tests. Fails because we aren't setting up the jest/jest-dom globals. * Move JS test code to reusable (private) package. * Enable incremental TS builds. * Use workspaces to run JS tests. * Use new jest configs for update snapshot scripts. * Fix style builds. * Fix package version in components. * Fix client test debug and watch scripts. * Update yarn lock. * Update test-staged behavior. * Try to fix storybook. * Fix storybook. * Update more npm commands to yarn. * Add changelog. * Fix lint errors. * Update packages readme script references. * Clean up unused gitignore match. * Fix another npm command. * Fix JS builds on watch. * Fix start script. * Fix start scripts for packages. * Use tsc to build packages before tests * yarn -> npm. # Conflicts: # package-lock.json # package.json * Fix linter error. * Remove workspace definitions. * Fix missing Fragment import. * Fix package lock. * Fix missing reference. * Only build commonjs module for js-tests helper. * Remove errant dependency from components. * Remove noop scripts. * Fix package JS build before testing. * Revert noisy formatting changes. * Fix precommit and test scripts. * Fix minimum expected recommended extension count. Japan test case breaks this. * Revert babel config changes. * chore(release): publish - @woocommerce/components@7.2.0 - @woocommerce/csv-export@1.4.0 - @woocommerce/currency@3.2.0 - @woocommerce/customer-effort-score@1.1.0 - @woocommerce/data@1.4.0 - @woocommerce/date@3.1.0 - @woocommerce/dependency-extraction-webpack-plugin@1.7.0 - @woocommerce/eslint-plugin@1.3.0 - @woocommerce/experimental@1.5.0 - @woocommerce/explat@1.1.0 - @woocommerce/js-tests@1.1.0 - @woocommerce/navigation@6.1.0 - @woocommerce/notices@3.1.0 - @woocommerce/number@2.2.0 - @woocommerce/onboarding@1.1.0 - @woocommerce/tracks@1.1.0 - @woocommerce/wc-admin-settings@1.1.0 * Add script for running 'start' in a package. * Remove yarn from gitignore. * Update package changelogs, prep versions for release. * Try to fix E2E tests after main merge. * Some cleanup. * Add changelog. Co-authored-by: Paul Sealock <psealock@gmail.com> |
||
---|---|---|
.. | ||
src | ||
.npmrc | ||
CHANGELOG.md | ||
README.md | ||
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
npm 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). |