Commit Graph

33 Commits

Author SHA1 Message Date
Tomek Wytrębowicz 17c1b38781 Add `navigation.getIdsSetFromQuery` util. (https://github.com/woocommerce/woocommerce-admin/pull/7341) 2021-07-27 11:08:53 +02:00
Jeff Stieler 8e61f55017 Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286)
* 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>
2021-07-14 16:38:57 -04:00
Paul Sealock 6ea9914ac0 Hook reference: Add SlotFill support (https://github.com/woocommerce/woocommerce-admin/pull/6833)
* add @slotFill to process

* add types

* committing data

* use filter instead of hook

* changelog

* add action type

* update paths to ignore builds and node_modules

* changelog

* Add action data type

Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>

Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
2021-07-09 11:01:43 +12:00
Tomek Wytrębowicz 5918c8ff1e Make `getIdsFromQuery` consider `0` as a valid id. (https://github.com/woocommerce/woocommerce-admin/pull/7028)
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>

- Make `getIdsFromQuery` consider `0` as a valid id.
	Previously `Boolean` filter was removing it from the list.
	Fixes https://github.com/woocommerce/woocommerce-admin/issues/6980
- Add a basic set of tests for `getIdsFromQuery`, as they were none.
- Replace `lodash.uniq` with ES6 equivalent.
- Update JSDoc for `getIdsFromQuery`, to specify default value, returned type and description.
2021-06-28 13:34:29 +02:00
Paul Sealock 562af3eedc SlotFill: Remove Navigation's context (https://github.com/woocommerce/woocommerce-admin/pull/6832)
* Use same wc-admin slotFill context

* changelog
2021-04-23 15:44:54 +12:00
Joel Thiessen 588776deb3 Fix persisted queries being lost when navigating to excluded page (such as Homescreen) (https://github.com/woocommerce/woocommerce-admin/pull/6614) 2021-04-02 14:35:31 -07:00
Joshua T Flowers 816b68eb83 Add WooCommerce flyout menu (https://github.com/woocommerce/woocommerce-admin/pull/6165)
* Unhide the submenu

* Add method to get items by category

* Add flyout menu items

* Sort items by menu ID

* Allow marketplace in flyout menu

* Remove unused styles on non-wc pages
2021-02-04 11:20:35 -05:00
Joshua T Flowers 828ffc8a1a Fix WooCommerce mobile menu for new navigation (https://github.com/woocommerce/woocommerce-admin/pull/6096)
* Show the first WooCommerce item in WP menu on mobile

* Hide excluded menu items from WooCommerce wp menu
2021-01-20 19:26:54 -05:00
Joshua T Flowers bc998444a3 Future proof experimental components (https://github.com/woocommerce/woocommerce-admin/pull/5961)
* Possibly use safe Text component

* Possibly use safe navigation components

* Add experimental package

* Update components to import from woocommerce/experimental

* Make experimental package private

* Reference experimental package relatively

* Update packages/experimental/README.md

Co-authored-by: Paul Sealock <psealock@gmail.com>

* Update packages/experimental/CHANGELOG.md

Co-authored-by: Paul Sealock <psealock@gmail.com>

* Update history state instead of mocking getQuery in tests

* Handle PR feedback

* Create excluded externals array and return early

Co-authored-by: Paul Sealock <psealock@gmail.com>
2021-01-07 18:57:09 -05:00
Joel Thiessen 2f9598e4ed Adding history listener to support persisted queries for new navigation (https://github.com/woocommerce/woocommerce-admin/pull/5883) 2021-01-07 08:53:31 -08:00
Ilyas Foo db598dafc4 Add page parameter to getNewPath to override default page wc-admin (https://github.com/woocommerce/woocommerce-admin/pull/5821)
* Add page parameter to getNewPath to override default page wc-admin

* Updated readme.txt
2020-12-04 14:45:16 +08:00
Paul Sealock bbbc945b3e Fix wc-nav dependencies 2020-11-25 08:08:23 +13:00
Paul Sealock 7e351c18a3 Navigation: extend with WC Admin router links (https://github.com/woocommerce/woocommerce-admin/pull/5445)
* add test case

* save

* pages

* comments

* use id

* bail on no wcAdmin pages

* prefix
2020-10-22 16:01:25 +13:00
Joshua T Flowers c0be4ecb56 Enqueue styles on non-WC pages (https://github.com/woocommerce/woocommerce-admin/pull/5419)
* Enqueue styles on non-WC pages

* Only load extra styles when navigation is enabled
2020-10-20 14:47:11 -04:00
Paul Sealock ad7cf64303 Navigation: Add client code (https://github.com/woocommerce/woocommerce-admin/pull/5309)
* is_feature_enabled

* feature class

* copy/paste

* hooked up

* its alive

* add wc-admin items

* clean up entry point

* Analytics remove url

* rebase error

* add back in check is_feature_enabled

* specificity CSS
2020-10-13 14:40:53 +13:00
Jeff Stieler aa86428ebc Add support for advanced filters with multiple instances. (https://github.com/woocommerce/woocommerce-admin/pull/5050)
* Refactor filter input row into component.

* Support multiple filter value in "add filter" list.

* Refactor out one-off updateFilter() callback.

* Use array index to remove filters.

Also create unique keys for multiple value filters.

* Use numeric index instead of filter "key" for change callbacks.

* Maintain unique keys for multiple filter components.

This avoids rerenders when filters are removed.

* Calculate instance numbers in constructor.

* Support advanced filter instances in navigation helper methods.

* Add allowMultiple to advanced filters README.

* Fix tests.

* Add test cases for multiple filter instances.

* Handle missing attribute names and terms in screen reader text.

* Fix perpetual loading indicator when there are no attribute terms.

* Handle new boolean case when generating screen reader text.

* Handle multiple filter instances when creating report queries.

* Remove unused variables.
2020-09-01 08:23:27 -04:00
Paul Sealock 23846221e6 jsDoc: Fix errors (https://github.com/woocommerce/woocommerce-admin/pull/4985)
* jsDoc errors, round 1

* round 2

* round 3

* voila

* root0 -> props
2020-08-18 09:36:24 +12:00
Darren Ethier dc5304823b Add @woocommerce/eslint-plugin (https://github.com/woocommerce/woocommerce-admin/pull/4714)
* add new woocommerce/eslint-plugin

* implement eslint-plugin (switch scripts to use wp-scripts etc)

* various linting fixes

* more lint fixes

* improve fix script

* more eslint fixes

* more eslint fixes

* temporary convert rules to warnings until they are all handled

* linting fixes

* update package-lock.json

* remove duplicates

* remove unnecessary `@wordpress/dependency-group` rule config

* add docs and adjust rules

* prettier fix

* fix merge artifact

* convert more rules to warnings

* change order to reflect importance

* install babel-preset-default

* remove unnecessary configuration for babel

* fix dependency group rule and test

* fix test

* handle collapsible whitespace

* add react testing library eslint plugin

* linter errors

* Add back in prettierrc

* package-lock update

* js lint fix with --fix

* disable whitespace in translation

* package-lock update

* make eslint actual dependency, not peer dependency

* pin eslint to v7

* I don't know why, but its working

* fix lint js

Co-authored-by: Paul Sealock <psealock@gmail.com>
2020-07-28 14:32:58 +12:00
Darren Ethier 33c5b41e3f Align WooCommerce javascript code standards/linting/styles with WordPress core. (https://github.com/woocommerce/woocommerce-admin/pull/3674)
* align code styles with the same configuration as Woo-Blocks

* initial pass of reformat-files

* applies manual fixes to various new linting errors surfaced by the configuration change.

* Fix state mutation in image-upload

* remove unused pre-commit-hook.js

* requestAnimationFrame -> window.requestAnimationFrame

* wc-api eslint changes

* eslint fixes on client/lib and client/settings

* client/header eslint changes

* fixes for client/dashboard part 1

* fixes client/dashboard part 2 of 2

* client/analytics part 1

* client/analytics continued

* client/analytics, last batch

* rename __mock__ directory

* pass in useEffect, useState from React component or function

* remove '+' from sprintf string argument

* use ref instead of findDOMNode

* reformat and repaply package.json changes

* install deps before running linter in Travis

* useGetCountryStateAutofill

* counryStateAutofill

* countryStateAutofill

Co-authored-by: Paul Sealock <psealock@gmail.com>
2020-02-14 15:23:21 +13:00
Paul Sealock 8205112732 Add currency extension (https://github.com/woocommerce/woocommerce-admin/pull/3328)
* Add currency extension

* use wcSettings

* save

* get revenue working

* all reports

* remove error log

* better rename

* add column

* persist queries

* go back to individual hooks

* comments

* address feedback
2019-12-06 11:38:26 +13:00
Jeff Stieler c2020507e3 Decouple Navigation from `wcSettings`. (https://github.com/woocommerce/woocommerce-admin/pull/3294)
* Move getAdminLink to wc-admin-settings.

* Add changelog entries.

* Look for `getAdminLink()` in @woocommerce/settings first.
2019-11-22 12:07:26 -05:00
Darren Ethier fee65dd6ac Decouple wcSettings from published packages. (https://github.com/woocommerce/woocommerce-admin/pull/3001)
* refactor wcSettings in components to use new api

* update test snapshot

* refactor wcSettings in other packages

* fix how defaults are set for setting

* decouple siteLocale from ReportsFilters and AdvancedFilters

* Decouple currency settings from packages

AdvancedFilters, ReportFilters, and NumberFilters now receive currency info as props.

* decouple currency settings from `ReportChart`

* decouple `wcAdminAssetsUrl` setting from `EmptyContent`

- also refactors to remove the need for `ImageAsset` component.

* decouple OrderStatus from wcSettings

* decouple wcAdminUrl setting from ProductImage component

- this also implements a SVG for default product image.

* remove export for image-asset that is no longer present

* remove console.log

* update test snapshots for ProductImage
2019-10-11 11:45:45 -04:00
Joshua T Flowers 9f6e200ab7 Remove path from URL in root/dashboard page (https://github.com/woocommerce/woocommerce-admin/pull/2674) 2019-07-23 11:17:43 +08:00
Albert Juhé Lluveras f392b5588d Replace 'stringifyQuery' with 'addQueryArgs' (https://github.com/woocommerce/woocommerce-admin/pull/2655) 2019-07-16 10:56:24 +02:00
Justin Shreve aed4ea63b4 Server side route handling 2019-07-01 12:22:34 +12:00
Albert Juhé Lluveras b18819489b Don't store searchWords in the query prop (https://github.com/woocommerce/woocommerce-admin/pull/1689) 2019-02-26 11:06:37 +01:00
Albert Juhé Lluveras 365d493079 Table: reset search on compare and reset comparison on search (https://github.com/woocommerce/woocommerce-admin/pull/1679) 2019-02-25 20:40:30 +01:00
Kevin Killingsworth 8b7e309e6f navigation: Lazy-create history (https://github.com/woocommerce/woocommerce-admin/pull/1472)
history.createHashHistory() is being called whenever this package is
imported, which causes the URL to redirect to a hash. This is
unnecessary in cases where elements of wc-admin are used outside of a
completely controlled/routed page.

This lazy-creates the history object only when it's needed and therefore
avoids the URL redirection unless history features are in use.
2019-02-06 13:28:29 -06:00
Paul Sealock 7856a58b49 Advanced Filters: Ranges: Allow update only on complete selection 2019-01-21 09:54:31 +13:00
Paul Sealock 0d59998625 Persist chart settings 2018-11-20 12:55:30 +13:00
Paul Sealock c809fa6cb9 Apply onQueryChange to more than just 'filter' 2018-11-14 09:56:39 +13:00
Kelly Dwan 89cee0df90 Build: Move filter code to the navigation package (https://github.com/woocommerce/woocommerce-admin/pull/803)
* Move filter code to the navigation package

- Moves filter-related code to navigation, so it can be shared between components and the app
- Fixes spelling of “flatten”
- Update README docs with new functions

* Use `get` to prevent errors if options is not an array/is empty

* Update documentation and tests
2018-11-12 11:17:18 -05:00
Kelly Dwan d27cb26ef7 Build: Move `lib/nav-utils` and `lib/history` to `@woocommerce/navigation` (https://github.com/woocommerce/woocommerce-admin/pull/763)
* Move nav-utils and history to new package

* Update config to build and use new navigation package

* Update all imports to use new navigation package

* Remove unnecessary README

* Update nav-utils path
2018-11-05 16:02:04 -05:00