Replace Stats and Reader likes screens with an adaptive SwiftUI grid - #25907
Open
crazytonyli wants to merge 1 commit into
Open
Replace Stats and Reader likes screens with an adaptive SwiftUI grid#25907crazytonyli wants to merge 1 commit into
crazytonyli wants to merge 1 commit into
Conversation
Collaborator
Generated by 🚫 Danger |
Contributor
|
| App Name | WordPress | |
| Configuration | Release-Alpha | |
| Build Number | 33820 | |
| Version | PR #25907 | |
| Bundle ID | org.wordpress.alpha | |
| Commit | cfc6310 | |
| Installation URL | 54glj0pf332io |
Contributor
|
| App Name | Jetpack | |
| Configuration | Release-Alpha | |
| Build Number | 33820 | |
| Version | PR #25907 | |
| Bundle ID | com.jetpack.alpha | |
| Commit | cfc6310 | |
| Installation URL | 0qios8qcgjoco |
The likers list (users who liked a post) rendered as a single full-width table everywhere, wasting space on iPad's regular width. Replace the Stats and Reader post-likes screens with one shared SwiftUI implementation that adapts to the horizontal size class: a single column on compact and an adaptive multi-column grid on regular. LikesListViewModel ports the post-likes fetch and pagination engine from LikesListController (cache-first first load, the +1s "before" cursor, and the excluded-IDs boundary logic), publishing the likes, total, loading, and error state. LikesListView renders both layouts from one LazyVGrid; LikeUserRowView is a visual port of LikeUserTableViewCell. Each row is a Button so VoiceOver and Switch Control get one labeled control per row, and the avatar scales with Dynamic Type. A single LikesListHostViewController wrapper replaces the two near-duplicate host controllers, owning the navigation title, per-feature analytics, and the user profile sheet. A small PostLikesServing protocol keeps the view model unit-testable. Notifications is out of scope and keeps the existing LikesListController path.
crazytonyli
force-pushed
the
task/cmm-2318-stats-improve-likes-list-on-ipad
branch
from
August 19, 2026 06:28
260bc46 to
cfc6310
Compare
crazytonyli
marked this pull request as ready for review
August 19, 2026 06:36
Contributor
🤖 Build Failure AnalysisThis build has failures. Claude has analyzed them - check the build annotations for details. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Fixes https://linear.app/a8c/issue/CMM-2318
This PR introduces a grid view to display the like list The one in Stats is used to display Reader post like list too, so both places are updated.
Grid view is used on wider screens. Plain list is used on smaller screens. They reuse a new SwiftUI implementation underneath.