Commit Graph

28 Commits

Author SHA1 Message Date
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
Dan Q 952e4bd7fe Appease linter 2023-10-12 10:56:46 +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
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
Dan Q d06c6b7c13 Various backflips to specify object types for TypeScript 2023-09-29 11:09:29 +01:00
Dan Q 5959ecee7f Prettier code layout 2023-09-29 11:02:48 +01:00
Dan Q 5e34eb4c78 Enable apiFetch to use cache too 2023-09-28 17:14:02 +01:00
Dan Q 68d9fcff03 Remove debug code 2023-09-28 17:11:57 +01:00
Dan Q 4742270522 Remove debug code 2023-09-28 17:10:22 +01:00
Dan Q b70d60414a Remove debug code 2023-09-28 17:10:10 +01:00
Dan Q f90dde0b06 Add fetchCache pruning 2023-09-28 17:05:51 +01:00
Dan Q 1c1f36c7d0 Happier TS types 2023-09-28 16:11:38 +01:00
Dan Q 5442ccd065 Appease linter 2023-09-28 16:10:51 +01:00
Dan Q 6ffdda2ff7 Better indentation 2023-09-28 16:09:44 +01:00
Dan Q b050266d61 Better linefeeds 2023-09-28 16:09:37 +01:00
Dan Q 96532b8fcf Move extensions search into functions, and add fetchJsonWithCache wrapper 2023-09-28 16:06:30 +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
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
raicem fefe5223bc Marketplace: Add no results page 2023-08-15 15:37:50 +03:00
Kyle Nel b3992d3844
Reimplement existing marketplace tracking (#39672)
* Tracking: add UTM params to vendor links

# Conflicts:
#	plugins/woocommerce-admin/client/marketplace/utils/functions.tsx

Co-authored-by: raicem <unalancem@gmail.com>
2023-08-15 10:03:27 +02:00
raicem 31aa9ebd59 Marketplace: add category filtering 2023-08-15 09:38:17 +03:00
And Finally b56654867a Changes from `add/marketplace-product-card-component` after rebasing on feature branch. 2023-08-08 15:29:08 +01:00