woocommerce/plugins/woocommerce-admin
Danae Millan db2a74927b Fix calendar not being dismissed when clicked outside (https://github.com/woocommerce/woocommerce-admin/pull/7714)
* Add an 'onBlur' property to the 'DateInput' component

This allows passing a callback function for the input's onBlur event.

* Close the calendar when an element outside the parent dropdown gets focused

Previously, you had to click on the calendar and then click anywhere else for it to be closed without selecting a date. Now the calendar gets closed when any element outside the parent's dropdown element gets thefocus.

* Remove redundant code for dismissing the calendar when pressing the tab key

Dismissing the calendar this way doesn't seem to be good for accessibility. That aside, the introduced dismissal on blur handles the scenario of when the calendar isn't needed anymore and the user is navigating with the keyboard.

* Add changelog entry

* Use the PR ID instead of the issue ID for the changelog entry

* Separate new declaration on a new line instead of using a comma

* Add an entry to the packages/components/ changelog
2021-10-13 08:20:24 +08:00
..
.github Include yoast phpunit polyfills in phpunit tests (https://github.com/woocommerce/woocommerce-admin/pull/7695) 2021-09-23 18:01:52 +08:00
bin Console command to order PRs by merge date (https://github.com/woocommerce/woocommerce-admin/pull/7543) 2021-09-15 10:50:54 -07:00
changelogs Fix calendar not being dismissed when clicked outside (https://github.com/woocommerce/woocommerce-admin/pull/7714) 2021-10-13 08:20:24 +08:00
client Move some of the deprecated tasks stuff outside of the main components (https://github.com/woocommerce/woocommerce-admin/pull/7761) 2021-10-12 11:05:43 -03:00
config Remove tasks feature flag and old components (https://github.com/woocommerce/woocommerce-admin/pull/7736) 2021-10-05 14:20:28 -04:00
docker Update docker test suite readme (https://github.com/woocommerce/woocommerce-admin/pull/6783) 2021-04-12 17:04:06 -03:00
docs Fixing an unwanted page refresh when using Woo Navigation (https://github.com/woocommerce/woocommerce-admin/pull/7615) 2021-09-15 09:42:54 -07:00
images Updating eway logo in payment suggestions defaults (https://github.com/woocommerce/woocommerce-admin/pull/7562) 2021-08-26 08:58:39 -07:00
includes Use action to verify appearance task completion (https://github.com/woocommerce/woocommerce-admin/pull/7770) 2021-10-08 17:01:12 -04:00
languages Master -> main. (https://github.com/woocommerce/woocommerce-admin/pull/4618) 2020-06-17 13:39:41 -04:00
packages Fix calendar not being dismissed when clicked outside (https://github.com/woocommerce/woocommerce-admin/pull/7714) 2021-10-13 08:20:24 +08:00
src Add sort_by config option to the sort_tasks method (https://github.com/woocommerce/woocommerce-admin/pull/7767) 2021-10-12 15:28:52 -03:00
storybook Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
tests Add sort_by config option to the sort_tasks method (https://github.com/woocommerce/woocommerce-admin/pull/7767) 2021-10-12 15:28:52 -03:00
typings Fix some minor inbox panel issues, left over from re-factor (https://github.com/woocommerce/woocommerce-admin/pull/7125) 2021-06-09 16:38:22 -03:00
.browserslistrc
.distignore Create E2E package (https://github.com/woocommerce/woocommerce-admin/pull/7084) 2021-07-13 16:38:05 -03:00
.editorconfig Remove Trailing Whitespace in `readme.txt` (https://github.com/woocommerce/woocommerce-admin/pull/6940) 2021-05-11 13:41:45 +08:00
.eslintignore Add initial end to end test suite (https://github.com/woocommerce/woocommerce-admin/pull/5028) 2020-09-04 14:31:09 +12:00
.eslintrc.js Add eslint rule to prevent missing createElement imports. (https://github.com/woocommerce/woocommerce-admin/pull/7424) 2021-07-27 08:53:03 -06:00
.gitattributes Update Paths to Exclude from Composer (https://github.com/woocommerce/woocommerce-admin/pull/6642) 2021-04-09 07:50:59 +08:00
.gitignore Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) 2021-07-14 16:38:57 -04:00
.nvmrc
.prettierrc.js Update @wordpress/eslint-plugin dependency to latest version. (https://github.com/woocommerce/woocommerce-admin/pull/5856) 2021-01-26 13:24:28 +13:00
.stylelintignore CSS Linting: Exclude Storybook CSS (https://github.com/woocommerce/woocommerce-admin/pull/6785) 2021-04-13 10:03:44 +12:00
.stylelintrc.json Align WooCommerce javascript code standards/linting/styles with WordPress core. (https://github.com/woocommerce/woocommerce-admin/pull/3674) 2020-02-14 15:23:21 +13:00
.wp-env.json wp-env: Use WooCommerce Core latest (https://github.com/woocommerce/woocommerce-admin/pull/7752) 2021-10-06 20:42:45 +13:00
CONTRIBUTING.md Update changelog info in the contributing doc (https://github.com/woocommerce/woocommerce-admin/pull/7400) 2021-07-23 09:42:12 -03:00
Gruntfile.js Align WooCommerce javascript code standards/linting/styles with WordPress core. (https://github.com/woocommerce/woocommerce-admin/pull/3674) 2020-02-14 15:23:21 +13:00
LICENSE.md
README.md Publish storybook docs, remove react docgen based docs (https://github.com/woocommerce/woocommerce-admin/pull/7055) 2021-06-02 15:54:00 +12:00
SECURITY.md Add a security doc based on other woocommerce repos (https://github.com/woocommerce/woocommerce-admin/pull/6931) 2021-05-06 09:20:41 +12:00
TESTING-INSTRUCTIONS.md Add testing instructions to 7445 (https://github.com/woocommerce/woocommerce-admin/pull/7759) 2021-10-06 14:04:59 -03:00
babel.config.js Add Typescript and page objects to E2E suite (https://github.com/woocommerce/woocommerce-admin/pull/6582) 2021-03-17 16:22:09 -03:00
changelog.txt Sync changelog from 2.7.2 (https://github.com/woocommerce/woocommerce-admin/pull/7787) 2021-10-12 15:57:46 -04:00
chunk-src-version-param.js Remove dynamic content hash from chunk names. (https://github.com/woocommerce/woocommerce-admin/pull/5229) 2020-10-06 08:58:15 -04:00
composer.json Bump version to 2.9.0-dev (https://github.com/woocommerce/woocommerce-admin/pull/7731) 2021-09-29 06:32:38 -04:00
composer.lock Include yoast phpunit polyfills in phpunit tests (https://github.com/woocommerce/woocommerce-admin/pull/7695) 2021-09-23 18:01:52 +08:00
docker-compose.yaml Add initial end to end test suite (https://github.com/woocommerce/woocommerce-admin/pull/5028) 2020-09-04 14:31:09 +12:00
lerna.json Align WooCommerce javascript code standards/linting/styles with WordPress core. (https://github.com/woocommerce/woocommerce-admin/pull/3674) 2020-02-14 15:23:21 +13:00
license.txt
lint-staged.config.js Refactor package style builds (https://github.com/woocommerce/woocommerce-admin/pull/7531) 2021-08-19 10:15:59 -04:00
package-lock.json Add old option back with depreciated notice for backwards compatibility (https://github.com/woocommerce/woocommerce-admin/pull/7688) 2021-09-23 16:14:45 -03:00
package.json Bump version to 2.9.0-dev (https://github.com/woocommerce/woocommerce-admin/pull/7731) 2021-09-29 06:32:38 -04:00
phpcs.xml.dist Bump PHP test version to 7.0 in PHPCS config (https://github.com/woocommerce/woocommerce-admin/pull/6706) 2021-03-31 07:42:56 +08:00
phpunit.xml.dist Update PHPUnit to version 7 (https://github.com/woocommerce/woocommerce-admin/pull/3571) 2020-01-16 10:03:44 -04:00
readme.txt Remove old changelog from readme.txt and update minimum requirements (https://github.com/woocommerce/woocommerce-admin/pull/7774) 2021-10-11 14:33:09 -04:00
renovate.json Adjust renovate to automerge devDependencies. (https://github.com/woocommerce/woocommerce-admin/pull/4979) 2020-08-14 13:11:09 +12:00
tsconfig.json Fix TSC config and package build script. (https://github.com/woocommerce/woocommerce-admin/pull/7361) 2021-07-15 10:38:34 -04:00
uninstall.php Fix usage of "package" tag in file headers (https://github.com/woocommerce/woocommerce-admin/pull/4940) 2020-08-11 16:18:47 -03:00
unminify.js Use Route based code splitting to optimize bundle size (https://github.com/woocommerce/woocommerce-admin/pull/4094) 2020-04-29 12:01:27 -06:00
webpack.config.js Feature/7319 add woocommerce com data (https://github.com/woocommerce/woocommerce-admin/pull/7553) 2021-09-09 09:25:13 -03:00
woocommerce-admin.php Remove old changelog from readme.txt and update minimum requirements (https://github.com/woocommerce/woocommerce-admin/pull/7774) 2021-10-11 14:33:09 -04:00

README.md

WooCommerce Admin

This is a feature plugin for a modern, javascript-driven WooCommerce Admin experience.

Prerequisites

WordPress 5.4 or greater and WooCommerce 4.8.0 or greater should be installed prior to activating the WooCommerce Admin feature plugin.

For better debugging, it's also recommended you add define( 'SCRIPT_DEBUG', true ); to your wp-config. This will load the unminified version of all libraries, and specifically the development build of React.

Development

After cloning the repo, install dependencies:

  • npm install to install JavaScript dependencies.
  • composer install to gather PHP dependencies.

Now you can build the files using one of these commands:

  • npm run build : Build a production version
  • npm run dev : Build a development version
  • npm start : Build a development version, watch files for changes
  • npm run build:release : Build a WordPress plugin ZIP file (woocommerce-admin.zip will be created in the repository root)
  • DRY_RUN=1 npm run build:release : Builds a Wordpress plugin ZIP without pushing it to Github and creating a release.

For more helper scripts see here

For some debugging tools/help see here

For local development setup using Docker see here

Testing

End-to-end tests

Tests live in ./tests/e2e. An existing build is required prior running, please refer to the section above for steps. E2E tests use the @woocommerce/e2e-environment package which hosts a Docker container for testing, by default the container can be accessed at http://localhost:8084

All the commands from @woocommerce/e2e-environment can be run through npx.

# Set up the e2e environment
npm i
npx wc-e2e docker:up

Run tests using:

npx wc-e2e test:e2e-dev

or in headless mode:

npx wc-e2e test:e2e

Run a single test by adding the path to the file name:

npx wc-e2e test:e2e-dev tests/e2e/specs/activate-and-setup/complete-onboarding-wizard.test.ts

Documentation

There is documentation in 2 forms available in the repo. A static set of documentation supported by docsify and also a Storybook containing component documentation for @woocommerce/components.

To view the docsify docs locally you can do:

npm install
cd docs
npx docsify serve

When deployed the docsify docs also host an embedded version of the storybook docs. To generate that and test it locally in docsify you'll need to run:

npm install
npm run docs
cd docs
npx docsify serve

Then navigate to Components from the left hand menu in the docs.

If you would like to view the storybook docs hosted standalone, then you can run:

npm install
npm run storybook

Common Issues

If you're encountering any issue setting things up, chances are we have been there too. Please have a look at our wiki for a list of common problems.

Privacy

If you have enabled WooCommerce usage tracking ( option woocommerce_allow_tracking ) then, in addition to the tracking described in https://woocommerce.com/usage-tracking/, this plugin also sends information about the actions that site administrators perform to Automattic - see https://automattic.com/privacy/#information-we-collect-automatically for more information.

Contributing

There are many ways to contribute reporting bugs, adding translations, feature suggestions and fixing bugs. For full details, please see CONTRIBUTING.md