* Add an icon to the snackbar displayed for CES
* Change icon from SVG to a unicode emoji pencil
* formatting changes to satisfy CI
* bump ci
* Fix prop types and jsdocs for the customer effort score component
* whitespace >:-(
Co-authored-by: Rebecca Scott <me@becdetat.com>
* Spike out customer effort score
* Refactor CustomerEffortScore as Package (https://github.com/woocommerce/woocommerce-admin/pull/5342)
* Use an interstitial snackbar to trigger the CES modal
* Moved notice (snackbar) into @woocommerce/customer-effort-score
* Tidy up _webpack.config.js
* Fix linter issues
* refactor setting up CES tracking, add try..catch around loading from localStorage
* Add CES feature toggle (https://github.com/woocommerce/woocommerce-admin/pull/5387)
* Add feature toggle to only enable the customer effort score in development
* Move check into Loader
* fix logic 🙄
Co-authored-by: Rebecca Scott <me@becdetat.com>
* Add client-side check of the feature flag
* fix tabs in config
* Fix comment
* Use product lifecycle and options
* Add product count to tracks props
* Use Loader::load_features instead of DIY
* drop initiallyVisible from container
Co-authored-by: Rebecca Scott <me@becdetat.com>
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Spike out customer effort score
* Refactor CustomerEffortScore as Package (https://github.com/woocommerce/woocommerce-admin/pull/5342)
* Tidy up _webpack.config.js
* Fix linter issues
* refactor setting up CES tracking, add try..catch around loading from localStorage
* Add CES feature toggle (https://github.com/woocommerce/woocommerce-admin/pull/5387)
* Add feature toggle to only enable the customer effort score in development
* Move check into Loader
* fix logic 🙄
Co-authored-by: Rebecca Scott <me@becdetat.com>
* Add client-side check of the feature flag
* fix tabs in config
* Fix comment
* Use product lifecycle and options
* Add product count to tracks props
* Use Loader::load_features instead of DIY
* Only display the CES modal if tracking is allowed
* Move MONTH constant into @woocommerce/data
* Remove unused const
Co-authored-by: Rebecca Scott <me@becdetat.com>
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Spike out customer effort score
* Refactor CustomerEffortScore as Package (https://github.com/woocommerce/woocommerce-admin/pull/5342)
* Tidy up _webpack.config.js
* Fix linter issues
* refactor setting up CES tracking, add try..catch around loading from localStorage
* Add CES feature toggle (https://github.com/woocommerce/woocommerce-admin/pull/5387)
* Add feature toggle to only enable the customer effort score in development
* Move check into Loader
* fix logic 🙄
Co-authored-by: Rebecca Scott <me@becdetat.com>
* Add client-side check of the feature flag
* fix tabs in config
* Fix comment
* Use product lifecycle and options
* Add product count to tracks props
* Use Loader::load_features instead of DIY
Co-authored-by: Rebecca Scott <me@becdetat.com>
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Added Accordion component
This commit adds an Accordion component to our available components
* Refactored Accordion component
* Added new Accordion component to index
* Fixed a few Accordion details
* Accordion fixed
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
* Display a "read blog" message when there is an error in getting blog posts or there is no blog posts.
* Simplify ReadBlogMessage with interpolateComponents and Link.
* Remove inbox-specific class, widen single column.
* Create user preference for homescreen column layout.
* Add display options "tab" to homescreen.
* Style display options.
* Tweak homepage layout option values.
* Add tracks events for homepage layout.
* Add test coverage for homescreen display options.
* No need to use Fragment component.
* Use named exports.
* Fix display options styling on mobile/narrow viewports.
Don't show the options at all if we're forcing single column.
* Fix linting error.
* Move data store to package and hydrate navigation
* Use wc settings to get site URL and title
* Use wc settings admin link
* Update nav util tests to work with installs in subdirectory
* 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.
* 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
* Add initial Variations Report to analytics feature.
* Restrict query to variations when not specifying any product IDs.
* Add route to get variations without specifying a parent.
* Move variations table component to variations report directory.
* Add missing LIMIT clause to variations report query.
* Remove broken features from Variations table.
* Add Variations report controller to CSV emailer.
* Add initial Variation Stats endpoint, based on Product Stats.
* Hook Variations Report components up to new stats endpoint.
* Hook attribute filter up to variations report queries.
* Remove variation title filter usage.
See: https://github.com/woocommerce/woocommerce-admin/pull/5100
* Use filtered separator in variation name formatting.
* Add "single variation" to variations report, fix autocompleter API request.
* Fix segmentation by variation.
* Add comparison to variations report.
* Always include manually specified variations in report results.
* Fix variations report table comparison mode.
The ReportTable component expects the `filter` query param.
* Fixing styling of compare button without table search component.
* Add variation filter to Orders report.
* Link orders count to orders report filtered by variation.
* Orders report: include variation attributes in product names.
* Further style tweaks for variations report download button.
* Add variations filter to order stats query.
* Clean up "category includes" login in REST controllers.
Prep for "category excludes" in the Variations report.
* Support category exclusion in report filters.
* Fix filter param used by the variation report table component.
* Add category filter to variations report.
* Fix initial selected ReportTable rows when using non-default compareParam.
* Add a new autocompleter for variable products.
* Add products filter to variations report.
* Fix tests.
* Handle variation IDs that are no longer found.
* Add documentation.
* Use getSetting() instead of directly accessing window properties in client code.
* Fix ordering Variations by SKU.
Fixeswoocommerce/woocommerce-admin#4443
Some investigation found that woocommerce/woocommerce-admin#4443 is no longer a reproducible issue. Why this issue no longer exists is not clear, but it makes sense now to disable the store registration checks as they are only called once. This PR just removes the checks but does not change any other behaviour.
* One-shot to enable the homescreen for everybody
* Make the home page the default (only) experience
* remove option check in activity panel tabs, get tests working, fix lint issues
* Remove is-homescreen CSS class
* Remove extra home page route registration
Co-authored-by: Rebecca Scott <me@becdetat.com>
* Add option to not set up sales tax
* Correct JS lint errors
* Add abort option to plugin step
* Inline redirect to home page
* Use testing-library/react for the new test
* Also set woocommerce_calc_taxes to 'no'
Co-authored-by: Rebecca Scott <me@becdetat.com>
* 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.
* Simplify variation name logic.
* Remove errant commas from variation autocomplete options.
* Add single variation filter to products report.
* Include more variations in search results.
Also trim the response fields down.
* Add initial AttributeFilter component.
Only selected of attribute names for now.
* Add attribute term selection control.
* Position attribute filter inputs side by side.
* Add loading indicator to attribute term control.
* Clear term when attribute value changes, and handle backspaces.
* Generate screen reader text.
* Translate filter labels, add field separator.
* Improve grammar in screen reader text.
* Fix lint errors.
* Add onboarding task status API endpoint.
* Add task status to onboarding data store.
* Update appearance task to use onboarding store for status info.
* Update main task list component to use onboarding data store for status info.
* Clear onboarding status info "cache" when setting shipping rates in the task list.
* Clear onboarding status info "cache" when enabling payment methods from the task list.
* Fix onboarding data store reducer tests.
* Clean up redundant code, nest task status settings under new key for hydration.
* Include tasks status in onboarding data hydration.
* Update tax task to use onboarding data store for status info.
* Avoid continually rehydrating onboarding data.
* Refactor payment task method retrieval to use onboarding data store.
* Fix bug with disappearing appearance tax steps.
* Update appearance completion faster by using hydrated onboarding value.
* Avoid PHP warnings when onboarding isn't enabled.
* Remove unused imports.
This uses a generator action and hooks to reimplement the CTA as a more
simple and logicless component, with most of the logic now in the
HOC component.
* Add export ID to success response and fix typos in endpoint schema.
* Initial export data store.
Allows for starting export, but not checking progress.
* Use new export data store in analytics report tables.
* Remove defunct report export wc-api files.
* Apply review feedback from another wp.data PR.
* Use getResourceName() util for more DRYness.
* Fix linter error.
* Add response status code to fetchWithHeaders control.
* Use HTTP status rather than response body to determine success.
* Fix tests.
* Remove unused import from actions.
* 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>
* Add initial notes data store using wp data
* Cache individual note queries
* Update notes undo endpoint to batch update endpoint
* Allow batch updates of notes
* Add requesting state
* Update components to use new note store
* Remove old notes store from wc-api
* Get note IDs from json and validate data in REST API
* Add an updating state to each note
* Throw errors in actions so they can be caught by client
* Add store reducer tests
* Handle PR feedback
* Fix failing tests
* Don't set inbox panel visibility while batch updating
* Move woocommerce block to external dependencies
* scaffold out reviews store
* hook up dataStore
* get controls working
* getReviews working
* get count working
* get errors working
* indicators working
* reducer tests
* reviews
* Remove wc-api
* cleanup
* better way to fetch with headers
* add comment with issue
* better resolver
* 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>
* Add monthly product prices to OBW
* Remove description for physical and download products
* Use pills in product selection step of OBW
* Add missing translation wrapper, also convert some spaces to tabs
* Add pill to changelog
* Change pills to medium gray text and border
* Make everything line up correctly on smaller viewports
* Get the styles closer to the design
* Breakpoint to set font size to 11px
Co-authored-by: Rebecca Scott <me@becdetat.com>
Fixeswoocommerce/woocommerce-admin#4732
This updates `@wordpress/base-styles`, and because `@wordpress/components` depends on variables from it, that must be updated as well.
There are 3 major changes required as part of updating:
1. The $theme-color variable is no longer exposed by base-styles. Instead there are 3 css vars exposed. These are made available by use of a provided mixin. Situations where $theme-color was darkened using scss have been mapped as best as possible to the 2 other darkened shades of the css var that are available such as `--wp-admin-theme-color-darker-20` and `--wp-admin-theme-color-darker-10`. In some cases this means the colors are not exactly the same as before.
2. The post css `theme()` call is no longer available. All uses of this have been consolidated to use of the main theme css var `--wp-admin-theme-color`. This means that calls like `theme(secondary)` or `theme(outline)` etc have all been consolidated to the one color.
3. Many of the variables used for different shades of gray have been deprecated. These have been mapped across to the new gray variables. (Mapped according to the list described in woocommerce/woocommerce-admin#4732)
* Added skip profiler functionality
This commit adds the skip profiler functionality, leaving the Home screen `Store details` as incomplete.
# Conflicts:
# client/task-list/tasks.js
* Unit tests repaiared
* Added OBW page
This commit makes the necessary changes to add an OBW page
# Conflicts:
# client/profile-wizard/index.js
* Event name changed
This commit renames the event name we were recording since it was wrong.
* Redirection modified
This commit modifies the way we do redirection
# Conflicts:
# client/profile-wizard/index.js
* Removed `profiler` feature flag
* Removed `profiler` feature flag
This commit removes the `profiler` feature flag
* Added error handling for `updateProfileItems`
This commit adds error handling for the method `updateProfileItems`
* Update client/profile-wizard/index.js
Co-authored-by: Matt Sherman <matt.sherman@automattic.com>
* Removed "throw" from "then"
* Update client/dashboard/index.js
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Update client/profile-wizard/index.js
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Modified redirection URL
This commit modifies the redirection URL.
# Conflicts:
# client/task-list/tasks.js
# Conflicts:
# client/profile-wizard/index.js
* Removed the variable "lastStep" and the related logic.
* Removed change of state for variable "skipped"
* Added error trowing to onboarding actions
This commit adds error trowing to onboarding actions
* Removed response handling for `updateProfileItems`
* Added default value for "profileItems" in Homescreen and Dashboard
* Removed `step` from OnboardingProfile and test
This commit removes the `step` from OnboardingProfile.php and from tests
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
Co-authored-by: Matt Sherman <matt.sherman@automattic.com>
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Add dismiss button as task list item option
* Add option to undo task dismissal
* Record modal dismissal event
* Add transition animation to list items
* Use key for list items instead of index
* Remove dismissed tasks on recompleting profiler steps
* Show success screen based on conditions instead of step
* Use promise chain to handle updating tax settings
* Fix up error handling for failed setting updates
* Skip store location step if complete address exists
* Fix up pending/requesting state logic
* Allow opt in to TOS on tax task
* Don't complete task from completeStep
* Add caption styling to TOS text
* Add advanced args to configured static args so it is persistent
* Make sure unique keys are set in loaded labels
* Simplify the key selection because javascript
* Smarten up the filter picker so it only navigates if the selected button has changed
* Add static params for advanced order filters
* Add static param to product comparison config
* Add static param to category comparison config
* Add static param to coupon comparison config
* Add static param to taxes comparison config
* Add static params to downloads comparison config
Co-authored-by: Rebecca Scott <me@becdetat.com>
* Fix secondary button style in OBW.
* Center snackbar notices in OBW.
* Scope snackbar changes to just the OBW.
* Add busy treatment to Jetpack connect button when redirecting.
* Remove color override for form toggles in ellipsis menus.
* Fix styling of task list.
* Fix button styles in date range picker component.
* Use admin theme colors in calendar component selections.
* Fix datepicker styling on analytics settings page.
Add Timeline component
The overall component is split into smaller components:
* Timeline item: an individual item (event) for the timeline.
* Timeline group: a group of items grouped according to props.
See README.md for prop details.
Ordering and grouping is decided via props. Component also
exports helper objects to make it easier to pass in the correct
props for ordering and grouping.
Item titles and bodies can be passed in as either strings or
React elements. Icons must be React elements.
Has a storybook scenario along with unit and snapshot tests.
Co-authored-by: Valerie K <valerie@automattic.com>
Co-authored-by: Allen Snook <allen@allendav.com>
Co-authored-by: Kristófer R <kristofer.thorlaksson@automattic.com>
Co-authored-by: David Levin <davidlevin@Davids-MacBook-Pro-2.local>
* Add installAndActivatePlugins method to plugin store
* Use new install/actiate method in Plugins component
* Refactor benefits page to use await
* Refactor business details page to use new install method
* Replace Plugins component in Jetpack CTA
* Format and throw errors in plugin data store
* Add generic response handling function
* Add default error messages to plugin API
* Initial user preferences custom hook (wc meta).
* Organize dependencies.
* Specify dependencies in useSelect() call.
* Remove specifying preference keys.
There's currently no performance benefit to be had.
* Add HoC for hydrating current user data.
* Add user prefs update method.
* Export user prefs hook and HoC in data package.
* Handle error condition when updating user preferences.
* Use closure to get user ID for prefs update.
* Refactor analytics dashboard to use new user hook.
* Refactor ReportTable component to use new user hook.
* Move prop access to top of function component.
* Add todo for potential manual resolution logic.
* Refactor DashboardCharts component to use new user preferences hook.
* Move code out of functional component where possible.
* Fix chart interval query property.
* Refactor Leaderboards component to use new user preferences hook.
* Move code out of functional component where possible.
* Refactor Inbox panel to use user prefs hook.
@todo - updating last read isn't working.
* Use user prefs hook in StatsOverview component.
* Export user preferences store name.
* Use new store for unread inbox indicator.
* Hydrate current user data higher up in the app.
* Update "last read" timestamp in inbox panel.
* Fix StatsOverview test.
* Remove unused dispatch method from StorePerformance component.
* Remove now defunct user methods from wc-api spec.
* Add tests for isRequesting.
* JSON decode WC meta on updated user object.
* Test user prefs retrieval and save.
* Remove todo comment.
* Use user prefs hook in Jetpack install CTA on homepage.
* Add custom autocompleter support to Search component
* Throw error if Search autocompleter is missing or is of the wrong type
* Add custom Search autocompleter changelog entry
* Get Jetpack stats appearing on the home page
* Update hidden stats in stats overview test
* Make jetpack stats appear by default
* Add reportUrlType to dashboard store performance area
Co-authored-by: Rebecca Scott <me@becdetat.com>
* Add Table scrollable styling to left side
* Conditionally adjust scrollable indicators when updating table
* Refactor scrollable state keys and classes as 'right' and 'left'
* Have scroll indicators fade to white instead of black
Also widen them a bit.
* Have scrolling indicators appear over headers and loading content
* Migrate onboarding from wc-api to wp-data store
* Add tests for onboarding reducer
* Update references to onboarding data store
* Update tests for replacing profileItems
* Add onboarding hydration for profile items
* Prevent store from being registered twice
* Add requesting state to onboarding store
* Prevent duplicate registration on all wp data stores
* Update more components to use new wp data onboarding store
* Add tests for onboarding requesting state
* Update isRequesting to use isOnboardingRequesting
* Allow plugins API to install multiple plugins at once
* Update wpdata to handle installing multiple plugins and errors
* Remove client-side error message switch
* Update plugin tests for multiple plugins param
* Update plugins API to WP standards
* Add error for non-allowed plugins instead of silently failing
* Allow error handling for individual plugins
* Fix up js tests for new API response
* Add installed plugin to response on successful install
* Allow updateActivePlugins to add new plugins instead of replace
* Add autoConnect prop to Jetpack Connect component
* Add connect component to plugin benefits screen
* Add onError and missing prop types for Connect
* Update redirect URL after Jetpack connection
* Add tests for added active plugins
* Skip install if plugin error exists
* Update active and installed plugins to use replace flag
* Update tests to handle replace flag
* Refactor plugin install flow pending state
* Fixwoocommerce/woocommerce-admin#4086 misaligned 'required' text on selects
* rework this so that the issue is fixed in the select control itself
Co-authored-by: Rebecca Scott <me@becdetat.com>
* Add Storybook console addon.
* Add Link stories for all link types.
* Add unit tests for Link component.
* Add unit tests for List component.
* Add support for List item `listItemTag`.
* Plugins DataStore: decouple from onboarding (https://github.com/woocommerce/woocommerce-admin/pull/4048)
* Plugins DataStore: Add client side store
* change active_plugins to public static function
* don't change shape of allowed plugins
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)
* Fix AnimationSlider example code buttons
* Fixes disable state logic on forward button
* Fixes back property
* Update readme to indicate AnimationSlider example fix