Commit Graph

55 Commits

Author SHA1 Message Date
Jeff Stieler 7ca9e691d4 Migrate Enzyme tests to React Testing Library (https://github.com/woocommerce/woocommerce-admin/pull/5299)
* Migrate leaderboard tests to RTL.

* Remove test of default prop value.

* Migrate ReportSummary tests to RTL.

* Migrate ActivityCard tests to RTL.

* Migrate ActivityCardPlaceholder tests to RTL.

* Migrate remaining ProductType tests to RTL.

* Migrate Card tests to RTL.

* Update RTL and user event packages.

* Migrate Date tests to RTL.

* Migrate D3Legend tests to RTL.

* Migrate D3Base tests to RTL.

* Migrate Gravatar tests to RTL.

* Migrate ImageUpload tests to RTL.

* Migrate ProductImage tests to RTL.

* Migrate Rating tests to RTL.

* Migrate Search tests to RTL.

* Migrate Plugins tests to RTL.

* Migrate SelectControl tests to RTL.

* Migrate Timeline tests to RTL.

Remove tests that inspect DOM since there are snapshots.

* Migrate DismissModal tests to RTL.

* Migrate SetupNotice tests to RTL.

* Migrate WelcomeCard tests to RTL.

* Fix setup error reason retrieval in ShippingBanner.

* Migrate ShippingBanner tests to RTL.

* Migrate RecommendedExtensions tests to RTL.

* Migrate KnowledgeBase tests to RTL.

* Rename enzyme setup file, modify to setup RTL.

* No need to import jest-dom in test files.

* Remove enzyme dependency.

* Use snapshot for testing Leaderboard markup.

* Switch from "not to be empty" to "be in the document".

* No need to waitFor() recordEvent mock.

* Be specific about clicking the "hide" button.

* Use toBeVisible() instead of checking style property.
2020-10-15 08:41:39 -04:00
Paul Sealock 3c6483e842 Remove wc api 🎉 (https://github.com/woocommerce/woocommerce-admin/pull/5075)
* remove wc-api selects and constansts

* remove extendedItems dependence on wc-api

* remove wc-api

* PR feedback
2020-09-04 09:45:40 +12:00
Paul Sealock 8afad405d4 Remove unused lib/date (https://github.com/woocommerce/woocommerce-admin/pull/4987) 2020-08-18 09:53:13 +12:00
Joshua T Flowers 1d339174f8 Migrate reports data store to wp data (https://github.com/woocommerce/woocommerce-admin/pull/4966)
* Move controls to data package root

* Add reports data store in wp data

* Move report utils to data package

* Update error state and actions to match existing methods

* Update references to reports data store

* Add error setters

* Fix control registration path

* Add reports reducer tests

* Remove remaining report wc-api references

* Handle PR feedback

* reference packgage, not lib/date

Co-authored-by: Paul Sealock <psealock@gmail.com>
2020-08-14 14:19:04 +03:00
Paul Sealock c145783e0a Fix dependency declarations (https://github.com/woocommerce/woocommerce-admin/pull/4972)
* renmove WC comment block

* client routes

* more fixes

* moar search

* getting there

* by hand now

* david beating goliath

* mission accomplished

* client filepath

* save

* got it

* remove script

* fixes

* deal with package internal dep

* remove webpack alias

* fix webpack relative paths

* remove commented rule

* remove extra line

* remove unused modules entry
2020-08-13 14:05:22 +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
Paul Sealock 03db742cdd Currency package: make naming clearer (https://github.com/woocommerce/woocommerce-admin/pull/4560) 2020-06-18 11:33:40 +12:00
Paul Sealock cb4ba39e30 Dynamic Currency with Context API (https://github.com/woocommerce/woocommerce-admin/pull/4027)
* Make currency setting dynamic with context API

* reference Currency

* what is 'this'

* remove comment

* All report tables

* Customers report

* activity panel

* leaderboard test

* business details

* store details

* single source of truth

* shipping rates

* remove currency-format.js

* tidy up

* make Currency a factory function

* factory revenue table

* tables

* Chart y-axis labels

* customers table

* cleanup

* business details

* shipping

* number-format

* stock and downloads tables

* changelog

* cleanup

* SQL example: update to dynamic currencies (https://github.com/woocommerce/woocommerce-admin/pull/4033)
2020-04-03 10:54:38 +13:00
Jeff Stieler f8bc173cfb Only query requested stat totals in reports. (https://github.com/woocommerce/woocommerce-admin/pull/4009)
* Pass specified totals/intervals fields parameter to the Order Stats Query.

* Only request stats used in render for report summaries and charts.

Implement Orders as an example.

* Specify stats fields for all report requests.

* Add 'fields' parameter handling to all stats endpoint controllers.

* Reduce stats fields requested by dashboard charts.
2020-03-31 09:08:40 -06:00
Darren Ethier 783f613815 wp.data Settings refactor
add data store for settings using wp.data

add use-select-with-refresh example

replace fresh-data usage with new settings data store for settings page

Add data package

move to packages

Fix isDirty after save

Add isBusy to primary button when saving

update Readme

remove comment

readme to use useSelect

Revert "update Readme"

This reverts commit 7402fd49b8f384fde5878e0bee0616f0a87bb4f6.

Data Layer: Settings page to use Settings store (https://github.com/woocommerce/woocommerce-admin/pull/3430)

* Data Layer: Settings store as source of truth for settings page

This reverts commit 7402fd49b8f384fde5878e0bee0616f0a87bb4f6.

* fixup

* save on reset

* non mutable constants

* add set/getSettings

* save using setSettings

* separate HOC

* cleanup

* remove settingsToData

* withHydration

* remove withSettings HOC

* renmove useSettins for now

* withSettingsHydration updates

* Revert "withSettingsHydration updates"

This reverts commit f2adf108fbe19b574978fea5925a1a18e7ed3007.

* rename withSettingsHydration

* redo withSettingsHydration simplification

* restore

* useSettings

* render using useSettings

* handleInputChange working

* get setIsDirty working

* saving works

* reset and cleanup

* cleanup

* use snake case on hook files

* use clearIsDirty

* Avoid mutation on setting update

* remove @todo

* persiting -> isPersisting

* better reducer ternaries

* add wcSettings as arg to withSettingsHydration

reset package-lock

Settings: split out mutable wcAdminSettings (https://github.com/woocommerce/woocommerce-admin/pull/3675)

Settings: handle async settings groups (https://github.com/woocommerce/woocommerce-admin/pull/3707)
2020-03-25 16:20:17 +13: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
Jeff Stieler 9469663379 Decouple date package from `wcSettings`. (https://github.com/woocommerce/woocommerce-admin/pull/3278)
* Decouple date package from wcSettings.

* Update missed documentation and example.

* Expect simpler prop values for date filter.

* Remove unused props from primary/secondary dates.

* Avoid introducing moment dependency for type checking.

* Handle null moment/date values in DateRangeFilterPicker.

* Fix missing ISO date format.

* Fix moment instance detection.
2019-11-26 14:39:40 -05:00
David Levin 52cb35f4de Correcting and clarifying analytics terms and calculations (https://github.com/woocommerce/woocommerce-admin/pull/3104)
* Relabel Net Revenue to Net Sales, revert previous refund work on Gross revenue and rename to total sales. Update the orer of all the things

* Add gross sales calculation to revenue stats endpoint.

* Restore coupon_total when updating order stats.

* Wire up gross sales to revenue report.

* Fix revenue report refunds calculation when there are no refunds.

* update net sales labels and cases in order, product and category tables

* Subtract refunded shipping and taxes from gross sales.

* pluses to minuses to fix the gross revenue and refund totals when refunding

* Add gross_sales to revenue stats orderby enum.

* Change refund labels to Returns

* Remove usage of defunct coupon_total column.

* Store refunded amount in stats table.

* Rename "gross_total" column to "total_sales".

* Net total for refund orders can be used instead of a new column.

* Rename gross_revenue to total_sales.

* Coalesce coupons total in order stats query.

SUM()ing all nulls gives null, not zero.

* Use segmentation selections to backfill missing data.

Fo when report columns and segmentation columns don't match.

* Remove errant gross_sales from expected interval test data.

* Fix gross sales tests for revenue/stats.

* Move missing segment fills back to their original locations.

* Fix remaining tests failing because of gross sales.

* Fix db upgrade function rename of gross_total column.

* Fix linter errors.
2019-11-22 10:06:14 -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
Albert Juhé Lluveras 3123c4e047 Fix wrong average numbers in chart legends (https://github.com/woocommerce/woocommerce-admin/pull/2352)
* Fix wrong average numbers in chart legends

* Dashboard Extension example: update legend totals

* Rename 'totals' to 'legendTotals'

* Make sure legendTotals includes key property
2019-06-11 14:31:53 +02:00
Paul Sealock 34aa71cfbb Dashboard Charts: simplify data 2019-05-21 08:09:49 +12:00
Paul Sealock ee895e0f77 Check for config.defaultValue in Report Chart 2019-05-08 08:46:58 +12:00
Albert Juhé Lluveras 6862d05e2f Update packages with vulnerabilities (https://github.com/woocommerce/woocommerce-admin/pull/1913)
* Update packages with vulnerabilities

* Fix tests

* Replace require.requireActual with jest.requireActual
2019-03-26 12:31:57 +01:00
Paul Sealock b29b232a46 pass in filters 2019-03-25 13:03:53 +13:00
Jeff Stieler bfe5a75e98 Update text domain. (https://github.com/woocommerce/woocommerce-admin/pull/1795)
* Translation call text domain change from “wc-admin” to “woocommerce-admin”.

* Fix .pot file generation.

* Fix errantly closed array item in /revenue/stats controller.

* Rename plugin zip, main file, and repo name to "woocommerce-admin".
2019-03-13 11:14:02 -06:00
Albert Juhé Lluveras 1bbf79c105 Avoid useless Chart re-renders and clean-up component state (https://github.com/woocommerce/woocommerce-admin/pull/1780)
* Improve Chart rendering performance

* Avoid reassigning yFormat prop in Chart

* Update focused keys on legend toggle

* Use selectionLimit constant instead of a hardcoded value

* Minor improvements
2019-03-13 11:38:43 +01:00
Paul Sealock fd019c4c35 Chart: don't switch to comparison mode directly 2019-03-12 12:03:58 +13:00
Albert Juhé Lluveras a7e3cf78a0 Show compared keys in chart legends even if their values are 0 (https://github.com/woocommerce/woocommerce-admin/pull/1754)
* Show compared keys in chart legends

* Fix JS error if filters is missing

* Add docs
2019-03-06 21:12:28 +01:00
Albert Juhé Lluveras 5d3aa58a5d Use IDs instead of labels to identify chart legend items (https://github.com/woocommerce/woocommerce-admin/pull/1730)
* Use instanceId to generate unique ids for chart legend items

* Decouple item key and label in Chart components

* Remove more duplicate IDs in the chart legend

* Use double underscores in element IDs following BEM rules

* Move 'withInstanceId' inside D3Legend component

* Simplify screen reader labels logic

* Add CHANGELOG message

* Use 'primary' and 'secondary' as items keys in time-comparison charts
2019-03-05 19:27:20 +01:00
Albert Juhé Lluveras a8ee12e1f9 Fix empty chart and summary numbers when searching in the Categories report (https://github.com/woocommerce/woocommerce-admin/pull/1698) 2019-02-27 17:28:18 +01:00
Albert Juhé Lluveras 4e4f04b8d8 Display chart and summary numbers placeholder when loading search terms (https://github.com/woocommerce/woocommerce-admin/pull/1694) 2019-02-27 15:43:34 +01:00
Albert Juhé Lluveras 53bac8700e Screen readers: read date instead of data keys in 'time-comparison' bar charts (https://github.com/woocommerce/woocommerce-admin/pull/1586)
* Screen readers: read date instead of data keys in 'time-comparison' bar charts

* Make previous period labels more verbose

* Revert "Make previous period labels more verbose"

This reverts commit 34d13deaa982425ca2cba76dacfd2c89c96f06c0.

* Improve isSameDay check

* Add date to hour tooltip and improve screen reader label

* Add CHANGELOG message
2019-02-26 11:56:49 +01:00
Ron Rennick 7f4bb8df63 update chart type query string key to chartType 2019-02-14 13:35:08 -04:00
Albert Juhé Lluveras 4962ee5e4e Empty chart message (https://github.com/woocommerce/woocommerce-admin/pull/1499)
* Show empty chart and summary numbers when search returns no results

* Preserve chart mode in empty searches

* Show message in empty charts

* Improve code order

* Add CHANGELOG message

* Rename emptySearch to emptySearchResults

* Improve emptyMessage propTypes comment

* Remove duplicated code

* Improve CHANGELOG message

* Create util function to check if chart is empty

* Update CHANGELOG message

* Add baseValue prop to Chart
2019-02-12 22:42:02 +01:00
Albert Juhé Lluveras b3e028bc81 Show empty chart and summary numbers when search returns no results (https://github.com/woocommerce/woocommerce-admin/pull/1491)
* Show empty chart and summary numbers when search returns no results

* Add changelog message

* Preserve chart mode in empty searches

* Add tests

* Fix CSS Lint error

* Make sure the legend updates when there is no data and it's not requesting

* Rename 'emptySearch' to 'emptySearchResults'

* Fix tests
2019-02-07 10:57:47 +01:00
Justin Shreve 949afce248 Add Product Detail Report & Finish Comparison Chart Mode Functionality (https://github.com/woocommerce/woocommerce-admin/pull/1391)
Product detail report and comparison

Code cleanup

Fix 404 on product variations endpoint after rebase

Fix up tests

Fix loading indicators and add some checks around malformed variation response

Add date filtering SQL bits to the variations query

Handle PR feedback: Fix viewport, fix duplicate product issue, fix legend display reset, fix bargraph overflow, fix some coding standards/whitespace, add extra variation santiziation.

Fix scroll on wide charts, and fix undefined prop getting passed into report chart render
2019-02-05 13:12:58 -05:00
Justin Shreve 53a6e49874 Finish cleaning up client/store. (https://github.com/woocommerce/woocommerce-admin/pull/1403) 2019-01-30 02:22:10 -05:00
Albert Juhé Lluveras 03e17d372b Add new props to chart component (https://github.com/woocommerce/woocommerce-admin/pull/1247)
* Add different props to chart component that were inferred from 'mode'

* Add new chart props to packages CHANGELOG
2019-01-08 10:21:47 +01:00
Albert Juhé Lluveras a0f23c93c9 Improve Charts X-axis when displaying a single date (https://github.com/woocommerce/woocommerce-admin/pull/1195)
* Improve Charts X-axis when displaying a single date

* Add tests for getXTicks

* Fix typo in tests

* Add assertion in compareStrings test for dates with commas

* Update interval options

* Fix secondaryDate always showing 12AM

* Don't convert dates to UTC when checking if they belong to the same date
2018-12-27 19:51:58 +01:00
Albert Juhé Lluveras 5c8cfbc03f Report components docs (https://github.com/woocommerce/woocommerce-admin/pull/1140)
* Extend docs to report components

* Improve inline documentation in some files

* Update doc files

* Undo unnecessary doc changes

* Remove unnecessary line breaks in sidebar

* Rename 'Client components' to 'Analytics components'

* Minor docs fixes

* Rename toc contents to toc sections

* Update endpoint props doc to add an example and more information

* Fix outdated comment

* Fix merge error
2018-12-22 12:46:10 +01:00
Robert Elliott ebd857cefa Add/chart dashboard block (https://github.com/woocommerce/woocommerce-admin/pull/1002)
* added new block and dashboard charts

section title and filters... lots of duplicate keys

toggle chart types in block heading

* Updates per feedback.

* Add some documentaiton about new interactive prop on chart/legend

* Revert a few files that only had whitespace changes.
2018-12-21 16:24:26 -08:00
Jeff Stieler de1da53aaa Use wc-api for Report Chart data. 2018-12-07 16:39:41 -07:00
Robert Elliott c9ccc015ca move chart and d3chart components into @woocommerce/components package 2018-12-05 12:50:04 +02:00
Paul Sealock 77589bae6f Merge pull request woocommerce/woocommerce-admin#902 from woocommerce/fix/chart-placeholder
Chart: persist orderedKeys when requesting data
2018-11-23 09:57:45 +13:00
Paul Sealock 7d65df783c Chart: Persist orderedKeys between state changes 2018-11-23 09:49:28 +13:00
Albert Juhé Lluveras 56d3a69d13 Default charts to 'time-comparison' (https://github.com/woocommerce/woocommerce-admin/pull/905)
* Default charts to 'time-comparison'

* Fix broken test in ReportChart
2018-11-22 07:03:35 -06:00
Robert Elliott fe66aa9623 updated tests remove layout 2018-11-21 16:41:09 +02:00
Robert Elliott 24758bc80d squashed commits for chart packaging
expand formatting function to xFormats

adding getTooltipValueFormat

remove old chart examples

remove magic numbers and use variables

refactor getTooltipRowValue

update package-lock

allow function formatters and use @wordpress/elements
2018-11-21 16:10:56 +02:00
Albert Juhé Lluveras 2a95345bb9 Add chartMode property to filters configuration (https://github.com/woocommerce/woocommerce-admin/pull/884)
* Add chartMode property to filters configuration

* Add tests

* Cleanup

* Add chartMode propType to filters
2018-11-20 16:21:47 -06:00
Paul Sealock 0d59998625 Persist chart settings 2018-11-20 12:55:30 +13:00
Kelly Dwan 2a9cb6509b Build: Move components to packages dir (https://github.com/woocommerce/woocommerce-admin/pull/804)
* Move components to packages folder

* Update documentation generator to handle packages/components and client/components

* Update component locations

* Update CSS build process

* Remove react-dates css, this is already included by gutenberg

* Fix CSS style - single quotes

* Fix incorrect imports

* Update package-lock with new dependencies

* Update component locations for devdocs

* Fix location of tests
2018-11-15 13:16:23 -05:00
Albert Juhé Lluveras 5033a1ba5c Update comparison chart design and show it on the Product report (https://github.com/woocommerce/woocommerce-admin/pull/816)
* Display comparison chart in Product detail report

* Make legend to overflow in comparison charts

* Show comparison chart also when comparing products

* Update comparison chart legend design

* Send itemsLabel and comparisonChart as props to the ReportChart component

* Update styles and create a legend.scss file

* Minor cleanup

* Fix legend test

* Sort props alphabetically
2018-11-12 15:41:33 -06:00
Albert Juhé Lluveras 33cdba6945 Fix charts redirecting to previous path when changing interval value (https://github.com/woocommerce/woocommerce-admin/pull/731)
* Fix charts redirecting to previous path when changing interval value

* Fix chart being reset when changing interval

* Fix chart being reset when changing filters
2018-11-01 10:13:45 +01:00
Kelly Dwan f62537fc17 Try: Add Lerna to split out utility packages (https://github.com/woocommerce/woocommerce-admin/pull/678)
* Add lerna & GB package-building script

* Move currency library to lerna module

* Update lerna config

* Add publish commands

* Add currency as an faux-external module

* Add separate command to build just core files

* Update dependency path

* Update build script to build all packages into `dist`

* Add packages to the jest test setup

* Move date library to packages

* Update imports to use @woocommerce/date

* Output wcSettings definition before any scripts are output

Fixes issues where wc-dates lib relies on settings object

* Add the build step into travis

* Update jest config to dynamically get package paths

* Update package postcss config to match wc-admin’s main config

* Add combined watch scripts for package+app, add a `clean` command to clean up old build files

* Ignore PHPCS error (leave todo message to fix)

* Concat files with a space, fix issue where all files join in one continuous string and fail the check
2018-10-30 14:57:48 -04:00
Jonathan Belcher 0828ea5258 Fixes number formatting on charts (https://github.com/woocommerce/woocommerce-admin/pull/529) 2018-10-19 09:23:47 -04:00