⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content

Conversation

@harsh-akamai
Copy link
Contributor

@harsh-akamai harsh-akamai commented Jan 12, 2026

Description 📝

Implement the main product grid with category grouping and load more functionality

Changes 🔄

  • Added a CategorySection for each Marketplace Category
  • Added a ProductCard Skeleton loading state

Scope 🚢

Upon production release, changes in this PR will be visible to:

  • All customers
  • Some customers (e.g. in Beta or Limited Availability)
  • No customers / Not applicable

Preview 📷

Default State Loading State
image image

How to test 🧪

Prerequisites

  • Enable MarketplaceV2 feature flag
  • Enable Legacy Server Handlers in MSW

Verification steps

(How to verify changes)

  • Verify the Category Section match the figma mockups
  • Verify that the UI gracefully handles API failures
  • Verify that the Loading state works as expected
Author Checklists

As an Author, to speed up the review process, I considered 🤔

👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿ Providing accessibility support


  • I have read and considered all applicable items listed above.

As an Author, before moving this PR from Draft to Open, I confirmed ✅

  • All tests and CI checks are passing
  • TypeScript compilation succeeded without errors
  • Code passes all linting rules

@tvijay-akamai
Copy link
Contributor

Logo img in the card is having css styles of max-height: 32px; max-width: 32px; causing image to look smaller. Size should be as per figma. Not related to this PR scope but something that need to be addressed.
Screenshot 2026-01-14 at 10 13 44 AM

@davyd-akamai
Copy link

Hi guys @harsh-akamai @tvijay-akamai A few comments from my side:

  1. Now the card background is the same as the page background, or it’s transparent. It should be white and use the alias.background.normal token.
image
  1. On large screen resolutions, four cards appear in a row. Keeping in mind that we use the same grid layout, we should always have three cards in the desktop grid.
image
  1. Check a typography for a product card type tag. It seems it's too small
image
  1. On hover, we should add a shadow token shadow.S to a card and keep the same border color alias.border.normal. It's visible here: https://www.figma.com/design/OBi1a7v7id5FgprLnzSnny/Cloud-Marketplace?node-id=75-372&t=LhzqKaWX2itYRL8f-1

  2. Margin between cards inside a category should be 24px. Margin between categories - 32px.

  3. The position of a product tile tag is wrong, it should be placed on the right side (but I see a screenshot above that it positioned correctly, so maybe I don't see the last changes on my preview link. Same for a logo, it doesn't appear on my link)

image
  1. Not sure if you’ve already worked on responsiveness, but if so, please double-check how the cards look on mobile and tablet. They have different dimensions compared to the desktop view.

  2. I also see that you’ve used hex values instead of tokens. Will they be implemented later?

@harsh-akamai harsh-akamai marked this pull request as ready for review January 14, 2026 13:21
@harsh-akamai harsh-akamai requested a review from a team as a code owner January 14, 2026 13:21
Copy link
Contributor

@dwiley-akamai dwiley-akamai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we'll want some padding so the content isn't flush with the left edge:

Screenshot 2026-01-14 at 12 57 58 PM

Is there a plan for unit tests for any of these new components?

const LOAD_MORE_INCREMENT = 6;

export interface GlobalFilters {
categortId?: number;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
categortId?: number;
categoryId?: number;

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch! Addressed this. I've also added the unit tests 🚀

@davyd-akamai
Copy link

davyd-akamai commented Jan 15, 2026

Hey @harsh-akamai, @tvijay-akamai Looks much, much better - thank you!

I think from my comments above, only points 3 (type tag typography) and 4 (hover shadow) are left.

I’m really glad to see margins on tablet and mobile! Please just check the card height on tablet and mobile. In Figma, we have 320px height on tablet and 300px on mobile.

@harsh-akamai
Copy link
Contributor Author

Addressed the remanining points in 9e5c270
cc: @davyd-akamai @pmakode-akamai

harsh-akamai and others added 2 commits January 16, 2026 16:38
Co-authored-by: Purvesh Makode <[email protected]>
Copy link
Contributor

@pmakode-akamai pmakode-akamai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, looks good to me. thank you!

Comment on lines +118 to +122
const shouldFetchMore =
!isFetchingNextPage &&
products.length > 0 &&
displayCount >= products.length &&
products.length < category.products_count;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was wondering if we should also add a hasNextPage check from useInfiniteMarketplaceProductsQuery

@github-project-automation github-project-automation bot moved this from Review to Approved in Cloud Manager Jan 16, 2026
@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🔺 1 failing test on test run #16 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
1 Failing854 Passing11 Skipped38m 50s

Details

Failing Tests
SpecTest
clone-linode.spec.tsCloud Manager Cypress Tests→clone linode » can clone a Linode from Linode details page

Troubleshooting

Use this command to re-run the failing tests:

pnpm cy:run -s "cypress/e2e/core/linodes/clone-linode.spec.ts"

data: categories,
error,
isLoading,
} = useAllMarketplaceCategoriesQuery({}, {}, true);
Copy link
Contributor

@pmakode-akamai pmakode-akamai Jan 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
} = useAllMarketplaceCategoriesQuery({}, {}, true);
} = useAllMarketplaceCategoriesQuery({}, {}, isMarketplaceV2FeatureEnabled);

Let's pass a flag instead of a hardcoded value here before merging this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Approved

Development

Successfully merging this pull request may close these issues.

6 participants