Commit Graph

60 Commits

Author SHA1 Message Date
Ilyas Foo 33222c20e2
Add reactified main payments screen (#49972)
* Add new payments settings class, add new settings-payments module and a demo main component

* Minor edits

* Changelog

* Lint

* Lint php

* Use createRoot

* Hide payment recommendations when feature flag is enabled

* Moved logic
2024-07-26 12:40:18 +08:00
Chi-Hsuan Huang f1badbfb4b
Add global ErrorBoundary component for handling errors in react admin (#48250)
* feat: Add ErrorBoundary component for handling errors in WooCommerce admin client

* Add changelog

* Add tests for error-boundary

* Update plugins/woocommerce-admin/client/error-boundary/index.tsx

Co-authored-by: RJ <27843274+rjchow@users.noreply.github.com>

* Wrap text in __()

* Address feedback

* Fix tests

* Improve mobile view

* Update button

---------

Co-authored-by: RJ <27843274+rjchow@users.noreply.github.com>
2024-06-11 16:14:44 +08:00
Fernando Marichal 15b9805704
Revert customer-effort-score-tracks feature flag removal (#48235)
* Revert "Remove customer-effort-score-tracks"

This reverts commit 079d1fc6b6.

* Add  changelog
2024-06-06 15:27:10 -03:00
Fernando Marichal fdb4069566
Remove not used feature flags (#47150)
* Remove product-virtual-downloadable

* Remove product-variation-management

* Remove product-external-affiliate

* Remove product-grouped

* Remove product-linked

* Remove customer-effort-score-tracks

* Add beta tester changelog

* Add changelogs
2024-05-13 15:05:47 -03:00
Paul Sealock e16a644e86
Launch Your Store: Add useLaunchYourStore helper method (#45404) 2024-03-12 12:50:22 +13:00
Moon 1f914c755e
Add Launch Your Store settings section (#45402)
* Support div setting type

* Add wc_settings_general_site_visibility_slotfill slotfill

* Add site visibility setting section

* Add placeholder

* Rename div to slotfill_placeholder

* Add comment

* Fix component name

* Add changefile(s) from automation for the following project(s): woocommerce

* Use unique id

* Rename option names

* Put LYS settings behind launch-your-store flag

* Move Site Visibility header to component

* Lint fixes

* Lint fixes

* Use woocommerce-settings scope

* lint fix

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-03-08 04:11:52 +00:00
Paul Sealock 467d16f212
Settings Slotfills: Normalize registration to avoid conflicts (#45152) 2024-02-29 10:00:52 +13:00
Chi-Hsuan Huang ec8bd31365
Improve webpack cache-busting version parameter by using file contents hash (#44838)
* Update webpack config to use file content hash for chunks and generate asset php for styles

* Use StyleAssetPlugin to generate style.asset.php

* Remove unneed ?ver=<version> code

* Use file hash from asset file when SCRIPT_DEBUG is off

- Use file hash to load scripts/styles ?ver=<file hash>
- Add register_style() method to WC_Admin_Assets

* Load payment method promotions in admin_enqueue_scripts

* Add changefile(s) from automation for the following project(s): @woocommerce/product-editor, woocommerce

* Add json2php

* Update doc

* Update pnpm-lock.yaml

* Fix add_print_shipping_label_script

* Add a comment to style-asset-plugin.js

* Change register_style to use WC_ADMIN_DIST_CSS_FOLDER

* Reset the outputNormal object to avoid duplicate files

* Fix type error

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-02-27 08:07:53 +00:00
RJ 10bb0cc822
fix/cys ui feedback 12 sep (#40155) 2023-09-20 10:47:05 +08:00
RJ d15f62241f
dev: added xstate inspector toggling (#38022)
* dev: added xstate inspector toggling

* dev: added eslint-plugin-xstate
2023-04-28 15:30:52 +08:00
Matt Sherman b27f6023f8
Move remaining CES-related components to @woocommerce/customer-effort-score (#37316)
* Add @woocommerce/tracks to dev dependencies
* Move remaining CES-related components to @woocommerce/customer-effort-score
* Update imports in woocommerce/client/admin
2023-03-21 11:58:35 -04:00
RJ cc9f4b65fc
Enhancement: Tax settings conflict warning (#36010)
* Add WIP error handling when conflicting settings chosen

* add: enhance tax settings conflict warning

* Fix WC_Settings_Tax_Test::test_get_settings_for_default_section

* Wrap texts in i18n method

* Add snackbar

Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
2022-12-15 21:04:28 +08:00
Moon 6a8f124022
Fix Uncaught DOMException on WooCommerce -> Extensions page. (#33711)
* Add .commerce to wrap selector

* Add changelog

* More specific selector

Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
2022-07-04 12:41:32 +08:00
Chi-Hsuan Huang 7068c78101
Fix JS lint errors (#33484)
* Fix @woocommerce/data lint errors

* Fix internal-e2e-builds lint error

* Fix lint errors
2022-06-21 16:37:34 +08:00
Chi-Hsuan Huang a2813267eb
Fix script version parameter for async chunks (#33332)
* Fix webpack script version parameter for JS chunks
* Fix webpack script version parameter for CSS chunks
2022-06-07 21:35:04 +08:00
RJChow 73634d63d8 cleanup 2022-04-21 11:29:28 +08:00
RJChow 07a20ce378 added conditions for rendering 2022-04-21 11:29:28 +08:00
RJChow 9a95dc028f implement slotfill 2022-04-21 11:29:28 +08:00
RJChow feb1f42949 design banner 2022-04-21 11:29:28 +08:00
RJChow 9905a882b2 insert react 2022-04-21 11:29:28 +08:00
louwie17 3998f88597 Remove unpublished wc-admin-settings package and update getSetting usage (https://github.com/woocommerce/woocommerce-admin/pull/8057)
* Remove use of wc-admin-settings from packages

* Move getSetting to getAdminSetting and remove wc-admin-settings package

* Add changelog

* Update package.json and remove last use of wc-admin-settings
2022-01-06 08:53:30 -04:00
louwie17 022f7a173a Remove depreciated shared settings hook (https://github.com/woocommerce/woocommerce-admin/pull/7480)
* Initial set up for the WCAdminSettingsRegistry

* Make use of filter for admin settings

* Add wc/settings package and remove depreciated dropzone wrapper

* Make use of the getSetting function instead of accessing window directly

* Add comments

* Add changelog

* Remove un needed changes

* Update dropzone provider logic and fix styling

* Remove old css
2021-08-24 08:39:48 -03:00
Sam Seay d6a8bcf1e9 Remove fragile selector. (https://github.com/woocommerce/woocommerce-admin/pull/7053) 2021-05-26 13:36:04 +12:00
louwie17 be7dd2dd5e Add recommended payment methods (https://github.com/woocommerce/woocommerce-admin/pull/6760)
* Add initial payment recommendations code for the payments settings

* Added request data for the recommended payments

* Some styling updates and make sure it does not show when marketplace suggestions is disabled

* Update url

* Update comment in php class

* Add tests

* Fix lint errors

* Remove unnecessary type

* Fix lint error

* Fix broken test

* Convert plugin package to typescript

* Fix lint errors

* Add changelog

* Add support for locale-data

* Fix track name

* Fix up the tests

* Fix lint errors

* Address PR feedback

* Add tests for option hydration

* Make types more robust in plugins reducer

* Made use of SlotFill component instead of page registry and router

* Removed console log, and fixed types

* Add newer version of i18n to data package, for newer types

* Make the request to WooCommerce.com more restrictive

* Fix path of import

* Update PHP with suggested changes

* Remove SlotFill with applyFilters

* Update copy and PR feedback

* Update package lock

* Updated package lock

* Fix the package lock

* Added dot, and some minor styling changes

* Add test instructions
2021-04-20 14:17:19 -03:00
Joshua T Flowers baaaf39bf0 Try: Refactor head and body heights (https://github.com/woocommerce/woocommerce-admin/pull/6247)
* Move navigation to WC header

* Remove wp toolbar class

* Set body margin on header change

* Fix up layout margins

* Remove excess padding on mobile

* Fix navigation preload styles and embed

* Fix preloading space due to adminbar missing

* Remove embed padding on wrap

* Fix body display for wpadmin menu

* Fix up wpadminbar reset padding

* Remove body padding on full screen layouts

* Fix mobile admin bar height on full screen

* Clean up body margin on unmount

* Center the activity panel (https://github.com/woocommerce/woocommerce-admin/pull/6289)

* Center the activity panel

* Handle PR feedback

* Fix up secondary nav group style changes

* Remove screen reader style changes

* Debounce resize event

* Make responsive button selector more specific

Co-authored-by: Hsing-Yu Flowers <hsingyuc.7@gmail.com>
2021-02-12 11:32:26 -05:00
Moon 27a3884a94 Use an empty queue if CES feature is not enabled (https://github.com/woocommerce/woocommerce-admin/pull/5800)
* Include CES component only if the feature flag is enabled
2020-12-03 14:48:51 -08:00
Joshua T Flowers 4dde76e01c Update non-wca pages registered with nav to embed pages (https://github.com/woocommerce/woocommerce-admin/pull/5606)
Co-authored-by: Sam Seay <samueljseay@gmail.com>
2020-11-11 16:27:26 -05:00
Bec Scott f29995124c Basic customer effort score survey functionality (https://github.com/woocommerce/woocommerce-admin/pull/5324)
* 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>
2020-10-30 16:52:52 +10: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
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 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
Joshua T Flowers bfb8b68aa6 Remove navigation feature (https://github.com/woocommerce/woocommerce-admin/pull/4740) 2020-07-06 10:21:15 +03:00
Daniel Rey López 86d2bc3837 Fix WCPay sometimes not appearing on the task list (https://github.com/woocommerce/woocommerce-admin/pull/4647)
* Fix WCPay sometimes not appearing on the task list

* preload general settings

Co-authored-by: Paul Sealock <psealock@gmail.com>
2020-06-23 10:18:35 +12:00
Jeff Stieler 8a2750c973 Migrate user store to wp.data (https://github.com/woocommerce/woocommerce-admin/pull/4505)
* 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.
2020-06-10 11:46:46 -05:00
Paulo Iankoski 015fc89dbd Increase selector specificity (https://github.com/woocommerce/woocommerce-admin/pull/4289)
* Increase selector specificity

* Include exception for some WC pages

Co-authored-by: Paulo Iankoski <me@wpdev.com.br>
2020-05-07 09:17:50 +10:00
David Stone 8ebd33fe6b Use Route based code splitting to optimize bundle size (https://github.com/woocommerce/woocommerce-admin/pull/4094)
* Use lazy loading to split up the size of the js downloaded

* Use lazy loading to split up the size of the js downloaded

* Add Moment Timezone plugin to reduce size of data file.

* Lazy load header panels and use Dashicons for faster loading

* Load assets from the correct publicPath

* Load assets from the correct publicPath

* PHP cs fixes

* Fix missing quotes on string literal.

* Fix PropType warning for lazy loaded component.

* Separate the task list and dashboard chunks.

* Lazy load dashboard sections.

* Restore original icons and reduce size by importing only the icons needed

* Lazy load alerts to save more Kb on initial load

* Minify built JS in production mode.

* Add preload tags for WC Admin assets. (https://github.com/woocommerce/woocommerce-admin/pull/4162)

* Fix linting errors.

* Add modified UnminifiedWebpackPlugin.

* Produce minified and unminified bundles for all builds.

* Remove unused variable from webpack config.

* Run unminify after sourcemap generation.

* Only hook after optimization if we're using a devtool.

* Add minification suffix in Loader::get_url().

* Lazy load OBW on new home screen.

* Move OBW style up a level to layout.

* Hydrate ProfileWizard independently of withSelect and withDispatch

* Fix order of composition and fallback function when using hydration.

Co-authored-by: Jeff Stieler <jeff.m.stieler@gmail.com>
Co-authored-by: Paul Sealock <psealock@gmail.com>
2020-04-29 12:01:27 -06:00
Ron Rennick 5b201365dd POC store navigation (https://github.com/woocommerce/woocommerce-admin/pull/3202)
* Add base nav component

* Check if current screen is WC registered page

* Add core menu items

* Add param for menu items to migrate and hide old menu items

* Add body classes for wc navigation

* Check capability before adding menu items

* Add submenu items to frontend component

* Hide wc nav behind option

Co-authored-by: Joshua Flowers <joshuatf@gmail.com>
2020-04-27 12:30:32 +03: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 0be875d898 Reduce size of bundled JS, and overall plugin file size. (https://github.com/woocommerce/woocommerce-admin/pull/2933)
* Remove embed-page-specific Webpack entry.

* Stop @woocommerce/components from being bundled with the app code.
2019-09-24 08:55:39 -07:00
Paul Sealock d98eceffc7 Revert "Revert "Update to new Snackbar component and notice store"" (https://github.com/woocommerce/woocommerce-admin/pull/2643)
* Revert "Revert "Update to new Snackbar component and notice store""

* Update uploader component to use createNotice

* Bump required WP version to 5.2

* Update required PHP and WP versions in plugin header
2019-07-23 11:26:46 +08:00
Timmy Crawford f4735658d7 Revert "Update to new Snackbar component and notice store (https://github.com/woocommerce/woocommerce-admin/pull/2596)"
This reverts commit 980ff6fa71.
2019-07-10 09:58:51 -07:00
Joshua T Flowers 980ff6fa71 Update to new Snackbar component and notice store (https://github.com/woocommerce/woocommerce-admin/pull/2596)
* Add new wordpress/components version and fix dependencies

* Add in snackbar styling and gutenberg variables

* Convert all existing notice actions to wordpress/notices

* Fix linting errors

* Add package.lock changes

* Update search list control snapshots with new attributes
2019-07-08 12:10:34 +08:00
Daniel Rey López 08417da553 Allow each page to specify their breadcrumbs without having to render the Header component (https://github.com/woocommerce/woocommerce-admin/pull/2491)
* Simplify Header rendering, remove the use of react-slot-fill

* Remove the useless "/analytics" route

* Move all the <Header> renders to the new, declarative way of specifying breadcrumbs

* Re-render the Layout when a report is added using the REPORTS_FILTER, since that affects the breadcrumbs output

* Fix the base breadcrumb link and breadcrumbs on embedded pages

* Expanded Layout.propTypes to specify the breadcrumbs' shape
2019-07-05 09:15:49 +01:00
Joshua T Flowers 847b59246d Add transient notices (https://github.com/woocommerce/woocommerce-admin/pull/1423)
* Add initial transient notices component

* Animate notices to slide in and out

* Add notices to wc-api

* Map notices from wc-api to transient notices

* Add success message on settings save

* Add save notices to Settings page

* Remove all margin and padding from notice box when empty

* Add role alert to transient notices

* Add prefers reduced motion media query for transient animation

* Remove initial test notice

* Remove notices from wc-api

* Add wc-admin store for transient notices

* Pull transient notices from newly implemented store

* Use speak instead of role alert for accessibility

* Only show success message after request is complete

* Destructure state in componentDidUpdate

* Add store notice tests and fixtures

* Add box shadow to transient notice

* Move transient notices to bottom left

* Fix indentation
2019-02-13 19:44:58 +08:00
Kevin Killingsworth 833345dfee Remove 'wc-admin' client/store implementation (https://github.com/woocommerce/woocommerce-admin/pull/1344)
This has been replaced by the `wc-api` store, under client/wc-api
2019-01-28 14:18:21 -05:00
Kevin Killingsworth 847131c6c9 Add wc-api and "Fresh Data" (https://github.com/woocommerce/woocommerce-admin/pull/833)
* data: Add @fresh-data/framework to package.json

* data: Add fresh-data and replace orders in table

This PR adds fresh-data with a WooCommerce API spec to fulfill order
information. It then replaces the existing selectors for the orders
table with the new selectors as a proof-of-concept.

* wc-api: Add temporary code for `withSelect`

This adds temporary code for a `withSelect` function outside of
`@wordpress/data` until the context PR is merged:

https://github.com/WordPress/gutenberg/pull/11460

* wc-api: Update fresh-data to 0.5.0
2018-11-29 09:57:49 -06:00
Kelly Dwan ed1b847067 Fix Gutenberg 3.7 compatibility: Remove APIProvider (https://github.com/woocommerce/woocommerce-admin/pull/390)
* Remove APIProvider

Unused in the project, and deprecated in gutenberg

* Remove wp-api dependency
2018-09-11 15:48:43 -04:00
Kelly Dwan dec97d178e Components: Export reusable components to a separate file + global (https://github.com/woocommerce/woocommerce-admin/pull/297)
* Importing all components from a root components file

* Update Ratings component to avoid circular dependencies, fix tests

* Export components on `wc.components`, use this for importing

* Move react-dates initialize to the components file

* Push query changes to history

Fixes an issues where native a links do not update the query in `history`

* Update test config for new @woocommerce/components path

* Update chart components import

* Merge simple/complex & alphabetize by first exported name

* Add a readme with info about how to call these components
2018-08-20 17:18:13 -04:00