-
Notifications
You must be signed in to change notification settings - Fork 2k
Plugins redesign: Move browse all link to carousel #107175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Plugins redesign: Move browse all link to carousel #107175
Conversation
Jetpack Cloud live (direct link)
Automattic for Agencies live (direct link)
|
|
This PR modifies the release build for the following Calypso Apps: For info about this notification, see here: PCYsg-OT6-p2
To test WordPress.com changes, run |
e1e8aef to
0baa5da
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR moves the "Browse all" link from the header section into the carousel controls as part of the plugins redesign. The link is conditionally rendered either in the header (legacy behavior) or in the carousel navigation (new design with feature flag).
- Extracted
BrowseAllActioncomponent for reusability across different contexts - Updated carousel to display "Browse all" link alongside navigation buttons when
useCarouselis enabled - Maintained backward compatibility for non-carousel views
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| browse-all-action.tsx | New extracted component that handles the "Browse all" link with analytics tracking |
| plugins-results-header/index.tsx | Refactored to use the new BrowseAllAction component and export it for external use |
| plugins-results-header/style.scss | Added CSS rules to control text-decoration for action links |
| plugins-browser-list/index.jsx | Integrated BrowseAllAction with carousel and conditional rendering based on useCarousel flag |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| justify-content: flex-end; | ||
| align-items: center; | ||
| flex-grow: 4; | ||
| text-decoration: underline; | ||
| svg { |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The text-decoration: underline at line 41 applies to all .plugins-results-header__action elements (including both links and spans), but line 48-50 removes it unconditionally. This creates a CSS specificity conflict. Consider applying text-decoration: underline only to specific elements (e.g., links) or restructuring to avoid the override pattern. For example, move the underline style to a more specific selector like .plugins-results-header__action:not(a) or apply it conditionally based on element type.
| ? PluginsBrowserElementVariant.Extended | ||
| : PluginsBrowserElementVariant.Compact; | ||
| const shouldUseCarousel = useCarousel; | ||
| const browseAllAction = <BrowseAllAction browseAllLink={ browseAllLink } listName={ listName } />; |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new carousel integration with controlsAction and conditional rendering of browseAllAction lacks test coverage. The existing tests in plugins-browser-list/test/index.jsx don't verify the carousel behavior with useCarousel={true} or the BrowseAllAction placement in carousel controls. Consider adding tests to verify: (1) BrowseAllAction is passed to DotPager when useCarousel is true, (2) browseAllLink is undefined in header when useCarousel is true, and (3) the component renders correctly in carousel mode.
dzver
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
Here is how your PR affects size of JS and CSS bundles shipped to the user's browser: Sections (~211 bytes added 📈 [gzipped]) Sections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to. Legend What is parsed and gzip size?Parsed Size: Uncompressed size of the JS and CSS files. This much code needs to be parsed and stored in memory. Generated by performance advisor bot at iscalypsofastyet.com. |


Part of DOTDEV-258
Proposed Changes
Why are these changes being made?
Testing Instructions
/plugins?flags=marketplace-redesignBrowse alllinks should render next to the carousel arrows/pluginsBrowse alllinks should render as beforePre-merge Checklist