Commit Graph

303 Commits

Author SHA1 Message Date
Gan Eng Chin c6bcf9fa67
Fix incorrect data while loading in useRecommendedPlugins.
See the incorrect data issue in https://github.com/woocommerce/woocommerce/pull/37126#discussion_r1141936304.
2023-03-21 19:30:24 +08:00
Gan Eng Chin fe4e28d511
Rename UseInstalledPlugins to UseInstalledExtensions.
Also change related names from "plugin" to "extension".
2023-03-21 19:08:13 +08:00
Gan Eng Chin 50c391cee0
Use fallback value instead of default value in useInstalledPlugins. 2023-03-21 18:35:38 +08:00
Gan Eng Chin 79023a4a10
Fix incorrect data while loading in useInstalledPlugins. 2023-03-21 18:33:57 +08:00
Gan Eng Chin a2b02fc00c
Rename illustration-large.svg to illustration.svg. 2023-03-20 18:11:02 +08:00
Gan Eng Chin 0300078dfd
Remove unused illustration.svg file. 2023-03-20 18:08:30 +08:00
Gan Eng Chin 4e38969ce7
Use one illustration instead of two in IntroductionBanner. 2023-03-20 18:07:30 +08:00
Gan Eng Chin 7dd7994e01
Make scrollIntoView center on the "Add channels" button. 2023-03-20 17:46:54 +08:00
Gan Eng Chin 29299903c3
Make shouldShowCampaigns boolean type. 2023-03-20 17:23:20 +08:00
Gan Eng Chin 5455abcabb
Use useImperativeHandle instead of exposing button ref in Channels. 2023-03-20 01:00:19 +08:00
Gan Eng Chin 75c11a681d
Simplify CSS to have less hardcoded width value. 2023-03-20 00:11:32 +08:00
Gan Eng Chin 38370cc544
Remove unneeded CSS. 2023-03-19 23:34:17 +08:00
Gan Eng Chin ddd287cc4c
Show Campaigns card when banner is dismissed or campaigns total is truthy. 2023-03-19 23:30:21 +08:00
Gan Eng Chin 11683be1a8
Set default parameter values for useCampaigns. 2023-03-19 23:17:22 +08:00
Gan Eng Chin 458c16bad9
Move useCampaigns to shared hooks directory. 2023-03-19 22:54:55 +08:00
Gan Eng Chin c6a95ae9bf
Rename callback props in IntroductionBanner to make them clearer. 2023-03-19 21:10:22 +08:00
Gan Eng Chin 6b75b5db38
Rename variables to make them clearer. 2023-03-19 20:58:54 +08:00
Gan Eng Chin 155211d77a
Remove unneeded Icon component. 2023-03-19 20:56:00 +08:00
Gan Eng Chin 65523e36dd
Fix spacing for close button in IntroductionBanner. 2023-03-19 20:54:34 +08:00
Gan Eng Chin 1b65be0a53
Fix useSelect dependency in useIntroductionBanner. 2023-03-19 20:50:37 +08:00
Gan Eng Chin 99c6ebff15
Remove the use of isOptionsUpdating in useIntroductionBanner.
isOptionsUpdating will return true for any option update, not just our option here. This causes issue as shown in demo video in https://github.com/woocommerce/woocommerce/pull/37110#discussion_r1130531104.

We can just depend on getOption. When we update an option, it will be updated immediately in wp.data store before making API request to update the option in database (see c5564a15c1/packages/js/data/src/options/actions.ts (L44)).
2023-03-19 20:38:20 +08:00
Gan Eng Chin 162d790a7a
Update option name and value to make it more indicative. 2023-03-19 20:16:04 +08:00
Gan Eng Chin 49253425b2
Specify dependency for useSelect in useIntroductionBanner.
Co-authored-by: Eason <eason.su.tw@gmail.com>
2023-03-19 20:12:09 +08:00
Gan Eng Chin 7cc8e065f9
Merge branch 'trunk' into feature/34904-marketing-introduction-banner 2023-03-19 20:09:23 +08:00
Gan Eng Chin e20b9d1ac9
Filter out marketing channels in useRecommendedPlugins. 2023-03-19 18:06:39 +08:00
Gan Eng Chin 8c151984ad
Filter installed plugins against marketing channels in useInstalledPlugins. 2023-03-19 18:06:34 +08:00
Gan Eng Chin 555116f3df
Fix broken tests for CreateNewCampaignModal.
The tests had errors because useInstalledPlugins is added into the component and it is not mocked in the tests.
2023-03-19 17:59:35 +08:00
Gan Eng Chin 1aaa26e07d
Reload installed extensions data after installing recommended channels.
This is because the channel may not have registered itself as a marketing channel and it should show up in the Installed extensions card.
2023-03-18 00:47:54 +08:00
Gan Eng Chin f769a8c6f5
Merge branch 'trunk' into feature/34904-marketing-introduction-banner
Conflicts:
	plugins/woocommerce-admin/client/marketing/overview-multichannel/MarketingOverviewMultichannel.tsx
2023-03-17 01:21:13 +08:00
Gan Eng Chin aef22190d2
Make sure expression before && is always boolean in React rendering in marketing page. 2023-03-15 08:24:00 +08:00
Gan Eng Chin 0316fbb265
Specify empty array as hasFinishedResolution args.
This is to make things consistent with invalidateResolution to make things work with WP 5.9.
2023-03-14 03:35:20 +08:00
Gan Eng Chin 5a58784a62
Specify empty array as invalidateResolution and hasFinishedResolution args.
This is to make things work with WP 5.9.
2023-03-14 03:32:54 +08:00
Gan Eng Chin 0cf56774f5
Merge branch 'trunk' into feature/34909-marketing-create-campaign-modal 2023-03-13 12:51:24 +08:00
Gan Eng Chin baf9408f69
Merge branch 'feature/34909-marketing-create-campaign-modal' into feature/34904-marketing-introduction-banner
Conflicts:
	plugins/woocommerce-admin/client/marketing/overview-multichannel/Campaigns/Campaigns.test.tsx
	plugins/woocommerce-admin/client/marketing/overview-multichannel/Campaigns/Campaigns.tsx
	plugins/woocommerce-admin/client/marketing/overview-multichannel/MarketingOverviewMultichannel.tsx
2023-03-13 01:02:12 +08:00
Gan Eng Chin c6e6f8774d
Specify empty array dependency in useCampaignTypes.
This is to make it work with WP 5.9. See https://github.com/woocommerce/woocommerce/pull/37044#discussion_r1132062493.
2023-03-11 00:42:09 +08:00
Gan Eng Chin 1fea0185fe
Don't throw error in getCampaignTypes.
In WP 5.9, if we throw error, there would be an uncaught promise, and it causes UI to break.
2023-03-11 00:31:23 +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
Gan Eng Chin 0a58ec19f8
Remove unneeded div in CreateNewCampaignModal. 2023-03-10 02:14:35 +08:00
Gan Eng Chin e4da8cba09
Display info message when there are no campaign types. 2023-03-10 02:13:05 +08:00
Gan Eng Chin 6446053784
Load campaign types in overview and refetch after installeing a channel. 2023-03-09 23:46:54 +08:00
Gan Eng Chin 8b6aad4138
Refetch campaign types after installing a channel in CreateNewCampaignModal. 2023-03-09 22:51:12 +08:00
Gan Eng Chin 29d67a3a21
Refactor test data in CreateNewCampaignModal tests. 2023-03-09 22:31:51 +08:00
Gan Eng Chin 9f0326b398
Remove unneeded return in CreateNewCampaignModal.
This helps us save indentation and make the code few lines shorter.
2023-03-09 22:26:06 +08:00
Gan Eng Chin e15305b7c3
Remove unneeded CardDivider in CreateNewCampaignModal.
The code is copied from the Channels component, but in CreateNewCampaignModal, we don't need to display the divider, so we can just remove the divider code.
2023-03-09 22:23:27 +08:00
Gan Eng Chin c6dcee426b
Make it clear that title and classname cannot be overwritten by props. 2023-03-09 22:17:03 +08:00
Gan Eng Chin f5bb8490ea
Rename open and setOpen to isModalOpen and setModalOpen in Campaigns. 2023-03-09 22:11:53 +08:00
Gan Eng Chin e831e89997
Make the mocked modal clearer.
The previous text "Create a new campaign" can be a bit confusing with the other text "Create new campaign" in the test.
2023-03-09 22:09:24 +08:00
Gan Eng Chin 551db21e9b
Remove unneeded getByText in Campaigns test. 2023-03-09 22:05:17 +08:00
Gan Eng Chin f19969dacb
Change NewCampaignTypes to CampaignTypes. 2023-03-09 21:52:11 +08:00
Gan Eng Chin 39ce470fe8
Specify dependency for useSelect in useNewCampaignTypes. 2023-03-09 21:43:54 +08:00
Gan Eng Chin 3ba492f32b
Move convert function out of useSelect in useNewCampaignTypes.
This is so that it doesn't become dependency in useSelect.
2023-03-09 21:42:59 +08:00
Gan Eng Chin 6d72c2bbe1
Fix failed test for Campaigns component. 2023-03-09 01:08:28 +08:00
Gan Eng Chin 66e46d8942
Run lint:css-fix. 2023-03-09 00:34:20 +08:00
Gan Eng Chin 4068808f0a
Merge branch 'feature/34909-marketing-create-campaign-modal' into feature/34904-marketing-introduction-banner 2023-03-08 03:03:31 +08:00
Gan Eng Chin 97ed1d2a7d
Fix array length rendering literal 0 in CreateNewCampaignModal. 2023-03-08 02:57:02 +08:00
Gan Eng Chin 42ac7e4d28
Better logic for displaying buttons in IntroductionBanner. 2023-03-08 02:54:43 +08:00
Gan Eng Chin 8fe3781266
Use ref instead of location hash to scroll to add channels section. 2023-03-08 02:06:06 +08:00
Gan Eng Chin 0cb2fb1cd0
Display CreateNewCampaignModal upon button click in IntroductionBanner. 2023-03-08 00:37:55 +08:00
Gan Eng Chin a9b696d28c
Move CreateNewCampaignModal to shared components folder. 2023-03-08 00:34:09 +08:00
Rodrigue Tusse ed6c19b827 Fix 0 rendered on short-circuit evaluation. 2023-03-07 15:06:25 +02:00
Gan Eng Chin 7c9eedbbb4
Merge branch 'feature/34909-marketing-create-campaign-modal' into feature/34904-marketing-introduction-banner
Conflicts:
	plugins/woocommerce-admin/client/marketing/hooks/index.ts
	plugins/woocommerce-admin/client/marketing/overview-multichannel/Channels/RecommendedChannels.tsx
	plugins/woocommerce-admin/client/marketing/overview-multichannel/MarketingOverviewMultichannel.tsx
2023-03-07 00:46:38 +08:00
Gan Eng Chin 3e620c41c6
Add tests for CreateNewCampaignModal. 2023-03-04 01:02:46 +08:00
Gan Eng Chin 15c57bf712
Fix and add tests for Campaigns card. 2023-03-03 03:25:00 +08:00
Gan Eng Chin 913f7176b2
Refetch registered channels after installing channel in Campaigns card. 2023-03-03 02:34:16 +08:00
Gan Eng Chin ec15697d44
Load campaign types in Campaigns card. 2023-03-03 01:08:21 +08:00
Gan Eng Chin e13112875b
Move useNewCampaignTypes to shared hooks directory. 2023-03-03 01:05:14 +08:00
Gan Eng Chin 51a5a18448
Simplify receiveCampaignTypes. 2023-03-03 00:54:21 +08:00
Gan Eng Chin 8132addd18
Simplify wp.data for receiveCampaignTypes. 2023-03-03 00:24:51 +08:00
Gan Eng Chin 2443bfd7a0
Merge branch 'feature/34905-marketing-campaigns-card' into feature/34909-marketing-create-campaign-modal
Conflicts:
	plugins/woocommerce-admin/client/marketing/data-multichannel/action-types.ts
	plugins/woocommerce-admin/client/marketing/data-multichannel/actions.ts
	plugins/woocommerce-admin/client/marketing/data-multichannel/resolvers.ts
2023-03-03 00:11:35 +08:00
Gan Eng Chin c0364ad0ab
Remove unused error property in CampaignsState. 2023-03-02 03:16:29 +08:00
Gan Eng Chin 4b87f0a4ed
Add JSDOC. 2023-03-02 03:15:38 +08:00
Gan Eng Chin 9feaf55a60
Simplify receive campaigns success and error. 2023-03-02 03:02:14 +08:00
Gan Eng Chin 5af90c5e77
Add JSDOC for getTotalFromResponse. 2023-03-02 01:16:51 +08:00
Gan Eng Chin b83888577a
Fix getTotalFromResponse treating total 0 as undefined.
If total is 0, then the function should return 0, not undefined.
2023-03-02 01:13:42 +08:00
Gan Eng Chin 8e9f344478
Test code refactor with createTestCampaign. 2023-03-02 00:59:22 +08:00
Gan Eng Chin d111370d1e
Make UI work with wp.data new campaign types. 2023-02-28 00:51:34 +08:00
Gan Eng Chin 9526608fbc
wp.data for getting new campaign types. 2023-02-28 00:45:47 +08:00
Gan Eng Chin 418e4fba02
Fix build error after merging. 2023-02-27 23:49:50 +08:00
Gan Eng Chin f420a0ed9e
Merge branch 'feature/34905-marketing-campaigns-card' into feature/34909-marketing-create-campaign-modal
Conflicts:
	plugins/woocommerce-admin/client/marketing/components/RecommendedChannelsList.tsx
	plugins/woocommerce-admin/client/marketing/overview-multichannel/Campaigns/Campaigns.scss
	plugins/woocommerce-admin/client/marketing/overview-multichannel/Campaigns/Campaigns.tsx
	plugins/woocommerce-admin/client/marketing/overview-multichannel/Channels/Channels.tsx
	plugins/woocommerce-admin/client/marketing/overview-multichannel/Channels/RecommendedChannels.tsx
2023-02-27 23:46:30 +08:00
Gan Eng Chin e57181b987
Add tests for Campaigns component. 2023-02-27 02:23:11 +08:00
Gan Eng Chin 3513ef51a1
Merge branch 'trunk' into feature/34905-marketing-campaigns-card 2023-02-25 00:39:37 +08:00
Gan Eng Chin f62b44ae2f
Set numberOfRows for TablePlaceholder in Campaigns card. 2023-02-24 23:48:04 +08:00
Gan Eng Chin f7a1ef2123
Code refactor with getTotalFromResponse in getCampaigns. 2023-02-24 23:45:10 +08:00
Gan Eng Chin a4e11924fd
Change meta.total to optional in receiveCampaignsSuccess. 2023-02-24 23:44:47 +08:00
Gan Eng Chin f5ba6d94ac
Remove unused fetchWithHeaders control. 2023-02-24 23:35:40 +08:00
Gan Eng Chin a982b7be21
Error handling in getCampaigns. 2023-02-24 18:32:33 +08:00
Gan Eng Chin 92762ca9b0
Better pagination with TablePlaceholder in Campaigns card. 2023-02-24 17:09:42 +08:00
Gan Eng Chin cc5345db4e
Campaigns pagination UI logic. 2023-02-24 02:13:20 +08:00
Gan Eng Chin 60d815c582
wp.data for campaigns data pagination. 2023-02-24 02:10:37 +08:00
Gan Eng Chin 20ae504be0
Add controls with fetchWithHeaders. 2023-02-24 02:08:59 +08:00
Chi-Hsuan Huang dcba4456cf
Add SlotFill for marketing overview screen (#36828)
* Add slot for marketing overview section slotfill

* Add changelog

* Remove unneed changes

* Add changelog
2023-02-17 09:46:52 +08:00
Gan Eng Chin c9214abe1f
Merge branch 'feature/34906-marketing-channels-card' into feature/34905-marketing-campaigns-card 2023-02-03 00:54:51 +08:00
Gan Eng Chin 7bb042fcd2
Simplify CSS for CardHeaderDescription. 2023-02-02 21:50:36 +08:00
Gan Eng Chin 048906ad80
Change Campaigns CSS to use @include font-size(). 2023-02-02 19:06:17 +08:00
Gan Eng Chin 7b068bf908
Code refactor for Campaigns card CSS. 2023-02-02 17:52:22 +08:00
Gan Eng Chin c17f336acc
Code refactor for Campaigns card. 2023-02-02 17:47:42 +08:00
Gan Eng Chin 0abe368962
Display error state in Campaigns card. 2023-02-02 17:17:29 +08:00
Gan Eng Chin 743c0e5085
Set per_page to 100 for getCampaigns.
100 is the maximum limit allowed by the API.

We do this because the API does not return total number of rows, so we use 100 to get "all" rows, to support pagination in the UI.
2023-02-02 01:03:15 +08:00
Gan Eng Chin 183fc48132
Show CardFooter and Pagination only when it is needed.
This means when total is more than perPage.
2023-02-01 20:29:32 +08:00
Gan Eng Chin eda6f194b9
Use perPage constant instead of literal 5. 2023-02-01 20:27:07 +08:00