Commit Graph

170 Commits

Author SHA1 Message Date
Chi-Hsuan Huang ed81aa8201
Integrate JS remote logging package in WooCommerce Admin (#50134)
* Update remote logger to check dev env and whether logging is enabled

* Add changelog

* Integrate JS remote logging package in WooCommerce Admin

* Add changelog

* Update remote logger package

* Update test

* Log error in error boundary

* Update remote logger

* Fix webpack config

* Update log stack format

* Update handleError

* Add init debug
2024-08-02 10:25:39 +08:00
Vladimir Reznichenko a3f4d722b9
CI: speedup 'Check Asset Sizes' job (take 3) (#50178)
* CI: attempt 3 to speedup 'Check Asset Sizes' job.

* CI: cleanup

* CI: changelog entry.
2024-08-01 14:15:10 -07:00
Vladimir Reznichenko 07a71106dc
Monorepo: actualize loaders paths filtering for better Webpack performance. (#49714) 2024-07-29 15:20:17 +02:00
Vladimir Reznichenko 4ae9dee2e5
Monorepo: rework deps patching in admin plugin for better Webpack performance. (#49703)
* Monorepo: rework deps patching in admin plugin.

* Monorepo: changelog entry.
2024-07-23 16:27:42 -03:00
Vladimir Reznichenko 46f952eeb5
Monorepo: enable babel-loader and Jest caching (inc. CI) (#49656)
In this PR, we are consolidating babel-loader caching and adding Jest caching, improving build/testing times locally and in CI. The improvement comes from cache covering transpile steps in the mentioned processes.
2024-07-19 09:40:01 +02:00
Akeda Bagus b7563b6c3a
Add Woo product usage notice (#47697)
Nudges user when the store uses expired or unregistered paid Woo products on product-specific admin screens.
2024-07-17 16:38:08 +07:00
Manzur Ahammed a7ade5d2dc
Show notice for expired and expiring subscriptions in settings and in-app extensions page (#47004)
* show notice on WC core about subs expired

* add notice in wc core my subscription page

* dismiss subscription notice

* add rest api for dismiss subscription notioce

* dismiss notice permanently

* code refactor

* fix issue in expired subs

* not showing expiring subs notice if expired sub notice render

not showing expiring subs notice if expired sub notice render

* fix lint

* added changelog

* update comment

* fix js lint

* update response

* added new endpoint for notice

* update the endpoint URL

* update the endpoint URL

* show notice after one month

* add css class for refactor

* fix lint

* Add missing callback after the merge

* check plugin is installed on current site

* add comments, and fix missing price

* fix lint

* remove unnecessary duplicate asset load

* fix notice so that it only trigger dismiss API on notices close

* localize the renew product price

* track events in the wc settings page

* Use the correct field product_regular_price instead of product_price

* Add missing period in the notice message

* add nonce to the dismiss notice API

* extract dismiss notice API call to different code

* extract expired and expiring component to 1 component

* add track events for tsx components

* fix nonce checking

* fix lint

* fix lint

* enrich the button and hyperlink url to contains the product_id of expiring / expired subscription

* fix lint

* fix lint

---------

Co-authored-by: Akeda Bagus <akeda.bagus@automattic.com>
Co-authored-by: prahesa.setia <prahesa.kusuma.setia@automattic.com>
2024-05-31 08:34:36 +07:00
Manzur Ahammed 7312f137d4
Display a notice for expired/expiring subscriptions along with a plugin update message. (#47076)
* add subscription expiry message on plugin list

* Update changelog

* fix lint

* refactor code

* update product price meta

* add tracks event for enable autorenew and renew subscription notices in plugin lists

* fix lint error

* check product price is set or not

* check product price is set or not

* added translator comment

* fix typo

---------

Co-authored-by: prahesa.setia <prahesa.kusuma.setia@automattic.com>
2024-05-20 03:06:03 +00:00
Prahesa Kusuma Setia db804f4193
Tracks event for WooCommerce.com connect notice (#47003)
* add tracks event in the wc settings connect notice

* add clicked and dismissed tracks event in the marketplace connect notice

* add shown tracks event in the marketplace connect notice

* add changelog

* fix linter error

* Add Tracks event when connect-notice in plugin is shown and clicked

* Add docblock for maybe_enqueue_scripts_for_connect_notice_in_plugins

---------

Co-authored-by: Akeda Bagus <akeda.bagus@automattic.com>
2024-05-13 13:45:43 +07:00
Prahesa Kusuma Setia 1fddbb1001
Add notice to connect to woocommerce.com in wc settings and marketplace (#45536)
* add a woo.com connect notice in the plugin list for unconnected store

* add an extra notice string for store that runs outdated woo plugins

* add connect page hyoerlink to the plugin notice

* add changelog

* add comment for maybe_show_connect_notice_in_plugin_list()

* fix linter error

* use installed local woo plugin as the counter of extra notices

* only show woo connect notice in the woocommerce settings page

* add woocom connect notice component

* add woocom connect notice component to the content component

* add extra notice in the woocom connect notice component based on the local woo plugins count

* persist dismissal of woo connect notice in the wc admin settings page

* update changelog

* use update-check-public for unconnected stores

* use information from update-check-public API to determine notice show logic

* re-show dismissed connect woocom notice after 1 month

* add re-show notice logic for react admin page of woo connect notice

* fix identation

* differentiate local storage key for notice dismissal

* move woo connect notice script to different file

* rename to connectnotice

* fix linter issue

* fix linter issue

* update woo.com to woocommerce.com

* update woo.com to woocommerce.com in comment

* capitalize the WooCommerce.com

Co-authored-by: Leif Singer <leif@automattic.com>

* capitalize WooCommerce.com

---------

Co-authored-by: Leif Singer <leif@automattic.com>
2024-04-17 10:13:24 +00: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
Christopher Allford 5200c2e97f Change Asset Build Outputs
Wireit doesn't allow us to have build outputs in a directory outside
of the package. We can get around this by having a build step in
WooCommerce that copies the files from the output directories.
2023-12-09 14:27:30 -08:00
Christopher Allford 8c6b414fe0
Revert "Refactoring Task Infrastructure" (#41928)
Revert "Refactored Task Infrastructure (#41202)"

This reverts commit 96a973b9fa.
2023-12-06 11:36:12 -08:00
Christopher Allford 96a973b9fa
Refactored Task Infrastructure (#41202)
* Fixed NPM packages with invalid names.
* Renamed plugin packages.
* Standardized package NPM scripts.
* Replaced Turborepo with Wireit.
2023-12-06 09:32:32 -08:00
Albert Juhé Lluveras a0715be413
Add several WooCommerce-related commands to the Command Palette (#41605)
* add simple initial integration with Command Palette

* Add WooCommerce commands

* Add e2e tests

* Fixes

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

* Avoid using page.waitForLoadState() in Command Palette tests

* Make Settings and Analytics commands dynamic

* Decode entities to make sure characters are displayed correctly in the command palette

* Move decodeEntities() into registerCommandWithTracking()

---------

Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
Co-authored-by: github-actions <github-actions@github.com>
2023-11-28 12:26:30 +01:00
Paul Sealock 016f87d920 Shipping Settings: Add React base Region Picker (#40184) 2023-11-21 13:57:23 +13:00
Chi-Hsuan Huang 1e00d49843 Fix pr link 2023-10-24 12:29:18 +08:00
Chi-Hsuan Huang b972c515fc Fix typo 2023-10-24 12:28:39 +08:00
Chi-Hsuan Huang d40cfae029 Use NormalModuleReplacementPlugin to replace lock-unlock file 2023-10-24 12:27:49 +08:00
moon 630c78a9ef Add comment for the plugin 2023-10-23 17:25:09 -07:00
moon c9ad56bb64 Use webpack to replace modified version lock lock-unlock 2023-10-23 10:54:41 -07:00
Matt Sherman 1e35d45c99
Template API: Expose template block id and order to client (#40263)
* Update unit tests to handle _templateBlockId and _templateBlockOrder

* Refactor get_formatted_template

* Initial @woocommerce/block-templates package

* Add block-templates to admin webpack

* Add block-templates to dependency-extraction-webpack-plugin

* Add block-templates to admin assets

* Add block-templates dependency

* Update name block

* Update syncpack

* Update regular price block

* Update tab block

* Update section block

* Add @wordpress/deprecated to package

* Deprecated initBlock

* Update attributes block

* Update catalog visibility block

* Update checkbox block

* Update conditional block

* Update collapsible block

* Allow additional props to be passed to useWooBlockProps

* Update inventory sku block

* Update inventory quantity block

* Update inventory email block

* Update images block

* Update description block

* Update radio block

* Update pricing block

* Update password block

* Update notice block

* Update shipping dimensions block

* Update shipping class block

* Update schedule sale block

* Update sale price block

* Update toggle block

* Update taxonomy block

* Update tag block

* Update summary block

* Update variations block

* Update variations options block

* Update variation items blocks

* Changelog

* Changelog

* Changelog

* Changelog

* Changelog

* Add test for registerWooBlockType

* Add @testing-library/react-hooks to devDependencies

* Add test for useWooBlockProps

* Document API

* Fix linting issues in README.md

* Fix tabs tests by mocking useWooBlockProps

* Allow header duplication under different nesting

* Remove unused import (fixes lint error)

* Update lock file
2023-09-27 13:38:56 -07:00
Chi-Hsuan Huang 914df4b921
Fix customize store whitescreen in WP 6.3 (#40031)
* Fix wp-router dependencies issue

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

* Fix customize your store task header button (#40033)

* Fix customize your store task header button

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

---------

Co-authored-by: github-actions <github-actions@github.com>

---------

Co-authored-by: github-actions <github-actions@github.com>
2023-09-09 11:05:31 +08:00
Chi-Hsuan Huang 6f89dcdbb5 Update webpack config to not use external @wordpress/router
The external @wordpress/router package is not available in these versions, so we need to bundle it with the plugin. This is a temporary fix until we can drop support for WP 6.2 and below.
2023-09-01 12:24:02 +08:00
Chi-Hsuan Huang 56f4ad623f
Add customize store assembler hub (#39843)
* Add @wordpress dependencies for customize store task

* Update webpack config to bundle wp edit-site package instead of using external

* Add customize-store task list item fill

* Update CustomizeStore task to load editor scripts and settings

* Update customize store routing path

Use /* since we want to match any path that starts with customize-store

* Add assembler-hub

* Ignore some wp packages from syncpack for customize store assembler hub

We need to use specific versions of these packages for the customize store
"@wordpress/interface", "@wordpress/router", "@wordpress/edit-site"

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

* Tweak style

* Use CustomizeStoreContext and send xstate event

* Update assembler-hub style

* Fix nav width

---------

Co-authored-by: github-actions <github-actions@github.com>
2023-08-28 09:28:05 +08:00
Joel Thiessen b7e7d66de8
Adding basic Woo AI settings screen (#38920) 2023-07-12 17:12:03 -07:00
Joshua T Flowers 353e01eb65
Tweak typography and element spacing in product editor (#38351)
* Update header font size

* Remove icons from sections

* Update radio block label and spacing

* Make checkbox tooltips larger and vertically align

* Update description colors

* Update h4 font sizes in editor

* Add changelog entry

* Add core changelog entry

* Handle initial design feedback

* Remove copy of assets in client webpack config
2023-05-24 10:11:00 -04:00
Joel Thiessen 3679f019bb
Adding attributes block to product block editor. (#38051) 2023-05-02 21:13:48 -07:00
Joel Thiessen 87da63eb3a
Moving section icon svgs to assets folder and loading by URL (#37869) 2023-04-21 11:53:06 -07:00
louwie17 b42da82e50
Update/34885 category field in product editor (#36869)
* Add initial custom meta box for product categories

* Make use of TreeSelectControl

* Update classnames

* Display selected items and sync with most used tab

* Always show placeholder and remove checklist container

* Reactify category metabox tabs

* Add create new category logic

* Remove unused markup

* Fix saving of empty category list

* Add callback when input is cleared as well

* Some small cleanup and refactoring.

* Add changelog

* Fix tree creation and style enqueue

* Auto fix lint errors

* Fix linting errors

* Fix css lint errors

* Add 100 limit, and address some PR feedback

* Fix some styling and warnings

* Remove unused code

* Address PR feedback

* Fix lint error

* Fix lint errors

* Address PR feedback

* Fix lint error

* Minor fixes and add tracking

* Add debounce

* Fix lint error

* Allow custom min filter amount and fix menu not showing after escaping input

* Allow single item to be cleared out of select control

* Fix bug where typed values did not show up

* Fix some styling issues

* Allow parents to be individually selected

* Address PR feedback and add error message

* Add changelogs

* Fix saving issue

* Add client side sorting and stop clearing field upon selection

* Update changelog

* Create feature flag for async product categories dropdown

* Fix lint errors

* Fix linting
2023-04-19 04:28:18 -03:00
Joshua T Flowers 85080f642b
Add block related assets entry points to product editor build (#37318)
* Add editorStyle properties to blocks

* Rename style.scss files to editor.scss

* Get block entry points for block related assets

* Copy block assets to core assets build folder

* Remove unusable dependency

* Add changelog entries

* Fix up RTL style builds for block assets

* Update copy-webpack-plugin dependency and lock file

* Fix up lock file after rebase

* Fix order of webpack rtl stylesheet builds to prevent additional stylsheets

* Fix up lock file after rebase

* Fix tsconfig
2023-03-31 10:36:40 -07:00
Matt Sherman 30ea6cfc71
Show spotlight when switching to variable product type (#37413)
* Show variable product tour
* Only show tour when product type is changed to variable
* Only show tour if it hasn't been shown before
* Add variable_product_tour_shown to UserPreferences type
* Store whether tour has been shown in user preferences
* Record Tracks events
* Add docblock for woocommerce_admin_get_user_data_fields filter
* Add test for tour
2023-03-28 13:49:40 -04:00
Matt Sherman a77e4abffe
Emit error on webpack build when invalid export name used in import for JS (#37195) 2023-03-26 21:42:33 -04:00
Chi-Hsuan Huang a6e3398e06 Disable React Fast Refresh completely in webpack when running start command 2023-03-17 17:52:24 +08:00
Chi-Hsuan Huang c804e76156
Set up "React Fast Refresh" in woocommerce-admin (#37165)
* Add @pmmmwh/react-refresh-webpack-plugin, react-refresh, webpack-dev-server and add start:hot command

* Set up react fast fresh

* Add changelog

* Run prestart in hot command

* Update pnpm-lock.yaml

* Update pnpm-lock.yaml
2023-03-16 11:52:03 +08:00
Matt Sherman af24637439
Create @woocommerce/admin-layout package (#37094)
* Initial admin-layout package skeleton

* Changelog files

* Use createOrderedChildren and sortFillsByOrder from @woocommerce/components for WooFooterItem

* Move WooFooterItem to @woocommerce/admin-layout

* Use WooFooterItem from @woocommerce/admin-layout

* Suppress errant TS lint errors

* Exports for @woocommerce/admin-layout

* Fill updates and eslint suppression

* Changelogs

* Remove suppression of tslint errors

* Fix react and @types/react versions

* Load @woocommerce/admin-layout script and styles

* Move WooHeaderItem, WooHeaderNavigationItem, and WooHeaderPageTitle to @woocommerce/admin-layout

* Regenerate lock file post-rebase

* Remove duplicate import post-rebase

* Add wc-admin-layout to app style dependency

* Fix jest mock of @woocommerce/admin-layout

* Fix spacing.

* Export slot names

* Fix typo in .npmrc

* Update lock file

* Try updating lock file

* Update lock file

* Update lock file

* Update to latest lock file from trunk

* Update lock file

* Sync dependencies of @woocommerce/admin-layout

* Manually sync @wordpress dependencies
2023-03-10 09:58:02 -05:00
louwie17 5f0572664f
Add new `@woocommerce/product-editor` JS package (#36600)
* Bootstrap product-editor package

* Move product section components over to product editor package

* Add changelogs

* Remove unused import leftover from rebase
2023-01-31 09:38:28 -04:00
Joel Thiessen 8405974674
Adding ces exit prompt when product importer abandoned (#35996) 2022-12-15 13:18:35 -08:00
louwie17 895cb1561c
Add/35126 ces exit prompt orders (#35762)
* Add exit tracking for orders

* Update exit page CES action

* Fix order hook name

* Add changelog

* Address PR feedback
2022-12-15 15:50:34 -04:00
louwie17 c7132ec8f0
Add/35126 ces exit prompt settings (#35761)
* Add exit settings page tracker

* Add exception for when user hits the save button

* Update settings and add icon support

* Add changelog

* Add dismiss track for when user dismisses CES modal

* Add changelog

* Add tests for staticFormDataToObject function

* Fix imports of test file
2022-12-14 10:55:12 -04:00
Chi-Hsuan Huang 1fbe5d330d
Add @babel/plugin-proposal-class-properties to run storybook (#35867)
* Add @babel/plugin-proposal-class-properties to run storybook

* Add @babel/plugin-proposal-class-properties to webpack config and remove storybook env from babel config

* Add changelog
2022-12-07 22:26:02 +08:00
timur987 8dc954d54b
Feature: Add the In-App Marketplace Tour (#35278)
Co-authored-by: Michal Iwanow <4765119+mcliwanow@users.noreply.github.com>
2022-11-15 11:12:17 +01:00
Chi-Hsuan Huang fdbb6be37f
Fix Tour Kit stories loading error (#34831)
* Exclude debug module from webpack transpile to load tour kit stories

We originally added debug module in https://github.com/woocommerce/woocommerce-admin/pull/5987 to fix a IE11 issue.
Since we've drop IE11 support, it should be fine to remove it.

* Add changelog
2022-09-27 15:38:08 +08:00
RJ bae061a421
dev: change webpack config to use asset modules instead of custom loaders (#34649)
- asset modules are a new webpack 5 feature that handles inlining or extracting resources
2022-09-13 17:40:56 +08:00
Chi-Hsuan Huang 04a763d389
Add product page spotlight tour (#33268)
* Add product-tour admin script

* Update class-wc-admin-pointers.php to show experimental product tour

* Remove unnecessary window.onload

* Replace add new button with Enable guided mode button for product editing

* Show tour when tutorial query = true

* Add logic to show new tour only when a user select the physical product template

* Update product tour last step button text

* Add auto-scroll effect

* Fix i18n text

* Use bottom-start placement and align the arrow to the left

* Update pnpm-lock.yaml

* Update product tour effects

* Add changelog

* Add doc comments & check for tour-kit

* Add focus elements to product tour and wait initial element for tour showup

* Use spotlight query param to toggle new product tour feature

* Update wait seconds

* Update border style for product description & short description when editor is focused

* Add experimental-product-tour feature flag

* Refactor product-tour and support html editor focus style

Co-authored-by: moon <moon.kyong@automattic.com>
2022-06-09 13:02:40 +08:00
Chi-Hsuan Huang 6858195510
Update webpack.config.js to ensure we use styles from build-style (#33357)
* Update webpack.config.js to ensure we use styles from build-style

* Add changelog
2022-06-09 10:45:36 +08:00
Chi-Hsuan Huang 5db5c8b110
Add tour kit component (#33229)
* Add tour-kit component

* Add @types/wordpress__viewport to @woocommerce/components devDeps

* Add tour-kit README.md

* Add primaryButtonText option to tour kit step meta

* Add changelog

* Remove unneeded style import

* Set position and z-index style for tour-kit

* Add disable primary button feature for tour kit

* Export TourKitTypes

* Update style-build config for @automattic/* packages

* Add @automattic/* deps for components

* Ignore fs in webpack.config.js

* Update tour-kit stories

* Add tour-kit tests

* Update tour-kit README.md

* Update tour-kit types

* Update webpack.config.js

* Update style.scss

* Add auto focus feature

* Update type doc
2022-06-08 17:16:31 +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
Christopher Allford bb320a935a
Removed `@woocommerce/notices` Internal Prefix (#33283)
Since we're exposing the package in some form,
we cannot rename it since that would break backwards
compatibility.  This commit changes it back.
2022-06-03 16:05:26 -07:00
Christopher Allford 112b9ac67a
Prefixed Private JS Packages (#33218)
In order to ease the identification of private packages within the monorepo, this adds an `internal-` prefix to all of the current private packages. This makes it immediately clear when reviewing `packages/js` what is and isn't a private package.
2022-05-31 15:42:00 -07:00