Commit Graph

169 Commits

Author SHA1 Message Date
And Finally cc83ffd387
Removed `recordMarketplaceView` from `showSection` in `Products` component. We already record the view in the `useEffect` hook in the `Content` component, so we were getting a duplicate view.
Only setting default category `_all` for `search` view if `product_type` (i.e. `query.section`) is also set. The previous arrangement was setting the `_all` category on the initial search results, where category doesn't figure.

Removed `! props.view` from condition in `recordLegacyTabView`. It meant that the initial default marketplace view wasn't being recorded.

Solve issue with some default prop values

We were no longer sending through a property to determine the "view" or "section" (depending on which event version you're referring to) when loading the discover page.

This change ensures that there is always a fallback that resolves this.

Also fixed some linting issues and cleaned up redundant code.

Removed unused import.
2023-10-25 12:59:39 +02:00
Kyle Nel e76a88aa07
Fix some logic errors and tidy up empty properties
Removed default values from `marketplaceViewProps` – we are now handling this in the tracking function.

Changed `selectedTab` dependency of `useEffect` hook in content.tsx to `query?.tab`. The `selectedTab` state was being reset after (or at least not at the same time as) the change of the tab param in the query string. For this reason, we were recording two page views when you changed from Extensions tab and Shipping category to Themes tab. This doesn't seem to break anything! We are still setting the `selectedTab` based on the query string in the `Tabs` component, so they should still be in sync.

Removed the condition skipping marketplace page view when there was no `prop.view`. This meant that when you switched to the Discovery tab from another tab, we weren't recording the page view.

Also setting default category prop `_all` when no category is specified on extensions, themes and search tabs. This allows us to bundle the default views of those tabs with the views got by clicking on the "All" category link.

Addressing linter errors.
2023-10-25 12:56:54 +02:00
Kyle Nel 7b0a72307b
Add tracks events for to ensure legacy funnels work 2023-10-24 12:05:25 +02:00
berislav grgičak 83b7b95850
Add subscriptions empty state (#40862)
* Add disconnected state

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

* Added top margin to `.woocommerce-store-alerts` to address https://github.com/Automattic/woocommerce.com/issues/18448.

* Rename description class

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
2023-10-23 07:55:23 +02:00
Bero 679df40f5b Linter fixes 2023-10-18 17:43:36 +02:00
Bero 3a1249b9c4 Linter fixes 2023-10-18 14:03:17 +02:00
berislav grgičak 83517af699
Merge branch 'trunk' into feature/marketplace-subscriptions 2023-10-18 12:11:16 +02:00
berislav grgičak e30a99dc55
Return to new subscriptions page after action (#40727)
* Add redirect override method

* Redirect to wc-admin when needed

* Update refresh url

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

* Deleted unused import of `Themes` component. Was breaking local build.

* Linter fixes

* Linter

* Update plugins/woocommerce/includes/admin/helper/class-wc-helper-admin.php

Co-authored-by: Cem Ünalan <raicem@users.noreply.github.com>

* Small fixes

* PHPCS fixes

* Linter fixes

* Linter

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
Co-authored-by: Cem Ünalan <raicem@users.noreply.github.com>
2023-10-18 12:07:18 +02:00
Cem Ünalan 25dccd4968
Marketplace: Implement the subscriptions table row (#40626)
* Marketplace: Populate the table rows with components

* Marketplace: add links to dropdown menu and fix fallback product icons

* Marketplace: fix popover width

* Add My subscriptions install (#40630)

* Marketplace: add plugin install from the subscriptions page

Co-authored-by: berislav grgičak <berislav.grgicak@gmail.com>

* Marketplace: Use the activation function to show install button

---------

Co-authored-by: raicem <unalancem@gmail.com>

* Marketplace: Fix issues with copy on the My Subscriptions page

Co-authored-by: And Finally <andfinally@users.noreply.github.com>
Co-authored-by: berislav grgičak <berislav.grgicak@gmail.com>

* Marketplace: Use $grid-unit variables in SCSS

* Marketplace: fix the build error a missing module

* Linter fixes

---------

Co-authored-by: berislav grgičak <berislav.grgicak@gmail.com>
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
2023-10-18 12:14:14 +03:00
berislav grgičak 7cd33b5e95
Marketplace search improvements (#40667)
* Show themes first if no extensions

* Empty search load discover page

* Show three items per row if not dividable by four

* Update search per page to 8 for large screens

* Show 8 items on large screens

* Prevent same tab click

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

* Fix function name

---------

Co-authored-by: github-actions <github-actions@github.com>
2023-10-17 18:32:23 +02:00
And Finally 03ba981eea This branch replaces all "skeleton" loading indicators on the Marketplace with more-standard ones. It also:
- Aims to make those skeleton loaders more accurately represent this size and shape of the content that will replace them.
- Refactors the code so that components are responsible for hosting their own skeleton code, attached to an `isLoading` variable, making it easier to stay consistent as changes are made in future.
2023-10-16 16:08:33 +01:00
berislav grgičak f712c23b66
Fix Marketplace theme labels and links (#40661)
* Update search title

* Update no result title

* Open products in the same tab
2023-10-13 05:56:38 +02:00
Dan Q 952e4bd7fe Appease linter 2023-10-12 10:56:46 +01:00
Dan Q a23fbbbd63 Manually resolve linting issues created by trunk rebase 2023-10-12 10:35:51 +01:00
Dan Q 53d3f95b3d Add AbortSignal (from trunk) into merged branch 2023-10-12 10:29:43 +01:00
Dan Q 744d07cbee Merge branch 'trunk' into add/wccom-18292-cache-marketplace-results 2023-10-12 10:06:33 +01:00
Dan Q 44d0d22053 Merge branch 'trunk' into feature/marketplace-subscriptions 2023-10-11 12:49:35 +01:00
And Finally 4f5a4fa42a
Marketplace: hide search input when viewing my subscriptions page on a smaller viewport (#40444) 2023-10-06 14:49:46 +01:00
raicem ecdaca8eca Marketplace: hide search input when viewing subscriptions page on mobile
Corrected capitalisation of `classNames` in `LikertScale`.
2023-10-06 12:34:58 +01:00
And Finally a60f0ab23f Changes from https://github.com/woocommerce/woocommerce/pull/40375. Adding "View all" button to in-app marketplace search results. 2023-10-06 09:17:56 +01:00
Bero ff3e42948d Add icon 2023-10-06 08:23:49 +02:00
Bero cf9184a36d Merge branch 'feature/marketplace-subscriptions' into add/marketplace-helper-subscriptions-api 2023-10-06 08:22:11 +02:00
Dan Q fa22023814 Appease linter 2023-10-05 10:31:59 +03:00
Dan Q 9be2708c9e Fix style of tooltip 2023-10-05 10:31:59 +03:00
Dan Q 99838028cf Linter appeasement 2023-10-05 10:31:59 +03:00
Dan Q 29f2431bc6 Fix typo and lint 2023-10-05 10:31:59 +03:00
Dan Q 514fd937ee Hook up my My subscriptions section to tabs 2023-10-05 10:31:59 +03:00
Dan Q 74f7af7f1a Create My Subscriptions skeleton (with refresh link) 2023-10-05 10:20:02 +03:00
Dan Q 2c6bcfc113 Define a basic Subscription type 2023-10-05 10:20:01 +03:00
Bero 806e554a14 Abort content requests before new request 2023-10-04 19:57:11 +02:00
Bero a8cf772aaf Reset url state on tab click 2023-10-04 19:57:04 +02:00
Kyle Nel d8adecf783
Marketplace Themes: Feature Branch (#40159)
* Support for themes in in-app marketplace.

Contains the changes from:

https://github.com/woocommerce/woocommerce/pull/40247
https://github.com/woocommerce/woocommerce/pull/40272
https://github.com/woocommerce/woocommerce/pull/40302
https://github.com/woocommerce/woocommerce/pull/40303
https://github.com/woocommerce/woocommerce/pull/40333
https://github.com/woocommerce/woocommerce/pull/40368
https://github.com/woocommerce/woocommerce/pull/40375
https://github.com/woocommerce/woocommerce/pull/40375
https://github.com/woocommerce/woocommerce/pull/40389

* `.woocommerce-marketplace__discover`: changed `align-items` `flex-start` to `stretch` to properly display products on large and very large viewports.

* Delete plugins/woocommerce/changelog/add-18026-marketplace-theme-cards

Removing from feature branch before final review

* Delete plugins/woocommerce/changelog/add-18027-themes-to-in-app-search

Removing from feature branch before final review

* Delete plugins/woocommerce/changelog/add-marketplace-theme-discover-section

Removing from feature branch before final review

* Delete plugins/woocommerce/changelog/update-in-app-multiple-category-filters

Removing from feature branch before final review

* Delete plugins/woocommerce/changelog/update-theme-no-result-style

Removing from feature branch before final review

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

---------

Co-authored-by: And Finally <andfinally@users.noreply.github.com>
Co-authored-by: Dan Q <dan@danq.me>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Dan Q <danq@automattic.com>
2023-10-04 18:59:34 +02:00
raicem 228084cb7c Marketplace: Change the way we space out heading and content area
Previous method caused issues when you go from WooCommerce > Home to
WooCommerce > Marketplace. The header was going missing on the
Marketplace page.
2023-10-03 17:11:21 +01:00
Dan Q b0b2afd26d Linter appeasement 2023-09-29 11:02:19 +01:00
Bero 60ef6dbbaf FIx installed list filter 2023-09-28 20:58:07 +02:00
Bero 2f7e57fb5b Merge branch 'feature/marketplace-subscriptions' into add/marketplace-helper-subscriptions-api 2023-09-28 20:52:15 +02:00
Bero 2f3d4b163e Merge branch 'trunk' into feature/marketplace-subscriptions 2023-09-28 20:50:42 +02:00
Bero 3de2a2bf3d Fix linter error 2023-09-28 20:49:22 +02:00
Dan Q f90dde0b06 Add fetchCache pruning 2023-09-28 17:05:51 +01:00
Dan Q d4f54bfeb8 Remove unused type 2023-09-28 16:11:13 +01:00
Dan Q 1252324ee2 Better indentation 2023-09-28 16:09:18 +01:00
Dan Q 96532b8fcf Move extensions search into functions, and add fetchJsonWithCache wrapper 2023-09-28 16:06:30 +01:00
berislav grgičak 8100917f2f
Update plugins/woocommerce-admin/client/marketplace/components/my-subscriptions/my-subscriptions.tsx
Co-authored-by: Cem Ünalan <raicem@users.noreply.github.com>
2023-09-28 10:02:46 +02:00
berislav grgičak a6dcfb08bb
Update plugins/woocommerce-admin/client/marketplace/components/my-subscriptions/my-subscriptions.tsx
Co-authored-by: Cem Ünalan <raicem@users.noreply.github.com>
2023-09-28 08:53:06 +02:00
Bero 93c650e2f5 Add expired to the installed list 2023-09-27 13:03:56 +02:00
Bero a0c30a298a Fix version number logic 2023-09-27 12:26:13 +02:00
Bero 17979635b6 Load correct data in components 2023-09-27 12:21:50 +02:00
Bero a4cceab468 List subscriptions from API 2023-09-26 14:12:14 +02:00
Dan Q 8685fd211e
Rather than adding border, add color to border of search box (#40242) 2023-09-25 10:35:38 +01:00
raicem 15257f8761 Markatplace: Reset search input when tab changes
When tab is changed, `@woocommerce/navigation` package resets
the `term` query parameter. So `query.term` becomes undefined.

Adding the else block allows us to catch that case and then
we can reset the search input.
2023-09-22 16:16:04 +01:00
Dan Q fd02270f5d Appease linter 2023-09-22 11:28:57 +01:00
Dan Q 1e929314e0 Fix style of tooltip 2023-09-22 11:05:42 +01:00
Dan Q 648dbcd75c Linter appeasement 2023-09-21 15:17:53 +01:00
Dan Q b05a5abc10 Fix typo and lint 2023-09-21 15:11:19 +01:00
Dan Q 40428ec704 Hook up my My subscriptions section to tabs 2023-09-21 15:00:22 +01:00
Dan Q 5e7263b77d Create My Subscriptions skeleton (with refresh link) 2023-09-21 15:00:04 +01:00
Dan Q 283f52b794 Define a basic Subscription type 2023-09-21 14:59:37 +01:00
Dan Q f12fb99d9d Merge branch 'trunk' into fix/wccom-17944-reposition-notifications 2023-09-19 18:28:29 +01:00
And Finally 6aa55f6334
In-App Marketplace: Update "no results" design for Extensions search (#40268) 2023-09-19 16:32:17 +01:00
Dan Q 59cb9fad48 Appease linter 2023-09-19 14:46:59 +01:00
Dan Q 9849ade9fa Correct quote style 2023-09-19 14:41:55 +01:00
Dan Q 98ac373b1b Correct CSS for image size! 2023-09-19 14:40:17 +01:00
Dan Q 96cbb30a76 Appease linter 2023-09-19 11:52:13 +01:00
Dan Q dcd08ac1b6 Apply empty string to URL in event that vendorUrl is absent 2023-09-19 11:39:01 +01:00
Dan Q 8ee8ff750b Suppress category selector only on no-results, not all search pages 2023-09-19 11:27:37 +01:00
Dan Q 078e178997 Suppress category selector when showing search results 2023-09-19 10:58:18 +01:00
Kyle Nel 5e88b001fa
Update wording on Marketplace footer (#40251)
* Update wording on Marketplace footer
* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2023-09-19 11:39:09 +02:00
Dan Q d23ac3ed10 Appease linter 2023-09-19 09:54:01 +01:00
Dan Q 3848b43052 Add width and height to image to reduce CLS 2023-09-19 09:34:05 +01:00
Dan Q 39caeb1c51 Ensure text wraps at an appropriate point 2023-09-19 09:33:49 +01:00
Dan Q e599390b9c Ensure new image centered 2023-09-19 09:33:40 +01:00
Dan Q d339e9ff5b Rather than adding border, add color to border of search box
This prevents the "jiggle" issue.
2023-09-18 10:47:12 +01:00
Kyle Nel e1d72bde0a
Marketplace: Add the query parameters to product page URLs (#39901)
* Marketplace: Add the right URL parameters to product URLs

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

---------

Co-authored-by: raicem <unalancem@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
2023-09-18 11:10:56 +03:00
Kyle Nel d1f935cca4
Add country to in-app marketplace search (#40091)
* Marketplace: remove orphaned components

* Marketplace: add country to search query

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

Co-authored-by: Cem Ünalan <raicem@users.noreply.github.com>

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Cem Ünalan <raicem@users.noreply.github.com>
2023-09-13 11:32:05 +02:00
Kyle Nel 6e20ecb3bc
Marketplace: update discover page card counts (#40020)
* Marketplace: update discover page card counts

* Marketplace: Apply PR review feedback

* Addressing linter error. Whitespace.

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

---------

Co-authored-by: And Finally <andfinally@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
2023-09-11 15:33:43 +02:00
Dan Q e76fe48a89 Move top padding of Marketplace Extensions content to instead be top margin of Marketplace Extensions page
This mitigates the issue whereby notifications push page content down a LONG way, and is a more-correct way to lay out the content.
2023-09-05 13:14:48 +01:00
And Finally 21d1bab26e [wccom-17942] Making sure snackbar doesn't appear before content has loaded.
- Fixing `prettier` linter errors.
2023-09-04 16:00:30 +01:00
And Finally 6d65d54ed5 [wccom-17942] Making sure snackbar doesn't appear before content has loaded.
- Fixing `prettier` linter errors.
2023-09-04 15:45:24 +01:00
And Finally 6ae83b08ec [wccom-17942] Making sure snackbar doesn't appear before content has loaded.
- Addressing feedback. Renamed `MARKETPLACE_API_HOST` TO `MARKETPLACE_HOST` to make it less confusing – we don't only use it for API URLs.
2023-08-31 16:14:06 +01:00
And Finally 3c8f4861e4 [wccom-17942] Only showing feedback snackbar when content of in-app marketplace has finished loading. Making sure snackbar is fixed position, so it's visible wherever you are on the page.
- `ProductListContextProvider` provides `setIsLoading` function as well as `isLoading`.
- `Discover` uses these values from context, instead of keeping a loading state in itself.
- `FeedbackModal` calls `maybSetTimeout` when `isLoading` changes. If `isLoading` isn't truthy, and snackbar hasn't already rendered, it sets a timeout of 5 seconds to show it.

- Removed wrapping <WooFooterItem> from around Footer component, so it's no longer a child of the WooCommerce Admin `.woocommerce-layout__footer` footer.
- Removed the `position: relative` from `.woocommerce-layout__footer`. It needs to be `position: fixed`.
- Added FooterContent component to Footer, to allow the layout we want.

- Changed use of context. This now only has states for the selected tab and loading state.
- We use this context in `Tabs` and `Content` to keep track of which tab is selected, and set the selected tab.
- We also use it in `Discover` and `Extensions`, which both report loading state to the context. This allows us to use it to only render the snackbar when loading is complete.
- Extensions: moved `productList` and `setProductList` and logic for getting product list from the context provider to a state in this component. We don't need to share the list of products in the context.
- Renamed `ProductListContext`, `ProductListContextProvider` and `productListContextValue` to more generic `MarketplaceContext`, `MarketplaceContextProvider` and `marketplaceContextValue`.
- Renamed a constant and created constants for API paths.
- Only shows snackbar after content has loaded, and after a timeout. We set a date `marketplace_redesign_2023_last_shown_date` in local storage to ensure we only show one snackbar.
2023-08-26 12:47:23 +01:00
raicem 60c07013d4 Marketplace: Cache Discover page content
We were hitting the WCCOM API directly from the front end. However,
that limits of in terms of caching and reducing the load on WCCOM.

To prevent that, we added a REST API endpoint. This endpoint
fetches discover page content from WCCOM and puts in a transient.
This is actually how the page works in the previous version. So
we were able to reuse a lot of the code.
2023-08-18 18:59:36 +03:00
And Finally 87706c5e5a [wccom-17713] Addressing design feedback.
- Removed duplicate `Search` styles from `header.scss`.
- Removed 10px top padding from `Header`. Applied it to title, meta and search containers instead.
- Deleted duplicate search button style from `header.scss`.
- Swapped round order of search component and header meta div so tab navigation order is correct.
- Added focus style to search component.
- Reduced footer side padding on mobile.
- Changed `.woocommerce-marketplace__header-title` page title to an h1 for accessibility.
- Removed top margin from product cards – the css grid handles the gap.
- Removed margin from `.woocommerce-marketplace__product-card__description`.
- Reduced font weight of price in product cards.
- Set margin below product list header.
- Removed right margin from tab buttons – css grid handles the gap.
- Increased top padding of `.woocommerce-marketplace__content`.

Addressing linter error.
2023-08-18 15:20:00 +01:00
And Finally 9fbb8a505b
In-App Marketplace: Improve Product Card Clickability (#39766) 2023-08-17 09:04:27 +01:00
And Finally 436ce4bd4d
Update copy on In-App Marketplace (#39767) 2023-08-17 09:02:25 +01:00
And Finally 6b1694f89b
Update marketplace product card for updated WCCOM search API (#39689) 2023-08-17 08:59:46 +01:00
Kyle Nel 542b33d859
Product Card: update to to using new API values
# Conflicts:
#	plugins/woocommerce-admin/client/marketplace/components/product-card/product-card.tsx
2023-08-16 13:55:59 +02:00
Dan Q cb5769ed0b Correct card hover outline color 2023-08-16 12:26:29 +01:00
Dan Q 555a8aaff0 Correct font color of search "no results" interpretation to g-gray 700 2023-08-16 11:00:59 +01:00
Dan Q 4831c6712b Improve semantics of "no results" page with a <h3> 2023-08-16 10:59:48 +01:00
Dan Q 91afe9f6e2 Correct search placeholder text 2023-08-16 10:56:15 +01:00
Dan Q e4e8490925 Fix heading font size 2023-08-16 10:54:29 +01:00
Dan Q 9c179240ab Switch "Woo Marketplace" hug in footer to gray-50 2023-08-16 10:18:22 +01:00
And Finally cc6ae76c42
Fix child keys error in `Tabs` component and and remove unnecessary `sanitizeHTML` call from `FeedbackModal` component (#39734) 2023-08-16 10:17:33 +01:00
Dan Q a88ccc1373 Update footer text 2023-08-16 10:05:53 +01:00
Dan Q b9a675be82 Linting CSS 2023-08-16 09:29:56 +01:00
Dan Q a89d05b8d1 Remove unused dependency 2023-08-16 09:28:51 +01:00
Dan Q 2397f37c93 Make product cards entirely clickable with hover effect 2023-08-16 09:20:24 +01:00
raicem 43271f9292 Marketplace: remove Featured category from category selector
It's not needed as a category option as the Discover page
shows the featured products. So we filter it out.
2023-08-15 15:43:09 +03:00
Cem Ünalan ce32317aeb
Marketplace: Add translation to the no results icon alt text
Co-authored-by: Dan Q <dan@danq.me>
2023-08-15 15:38:41 +03:00
raicem fefe5223bc Marketplace: Add no results page 2023-08-15 15:37:50 +03:00