Skip to content

Replace Stats and Reader likes screens with an adaptive SwiftUI grid - #25907

Open
crazytonyli wants to merge 1 commit into
trunkfrom
task/cmm-2318-stats-improve-likes-list-on-ipad
Open

Replace Stats and Reader likes screens with an adaptive SwiftUI grid#25907
crazytonyli wants to merge 1 commit into
trunkfrom
task/cmm-2318-stats-improve-likes-list-on-ipad

Conversation

@crazytonyli

@crazytonyli crazytonyli commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

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.

@dangermattic

dangermattic commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator
1 Warning
⚠️ This PR is larger than 500 lines of changes. Please consider splitting it into smaller PRs for easier and faster reviews.

Generated by 🚫 Danger

@wpmobilebot

wpmobilebot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor
App Icon📲 You can test the changes from this Pull Request in WordPress by scanning the QR code below to install the corresponding build.
App NameWordPress
ConfigurationRelease-Alpha
Build Number33820
VersionPR #25907
Bundle IDorg.wordpress.alpha
Commitcfc6310
Installation URL54glj0pf332io
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@wpmobilebot

wpmobilebot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor
App Icon📲 You can test the changes from this Pull Request in Jetpack by scanning the QR code below to install the corresponding build.
App NameJetpack
ConfigurationRelease-Alpha
Build Number33820
VersionPR #25907
Bundle IDcom.jetpack.alpha
Commitcfc6310
Installation URL0qios8qcgjoco
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

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
crazytonyli force-pushed the task/cmm-2318-stats-improve-likes-list-on-ipad branch from 260bc46 to cfc6310 Compare August 19, 2026 06:28
@crazytonyli
crazytonyli marked this pull request as ready for review August 19, 2026 06:36
@wpmobilebot

Copy link
Copy Markdown
Contributor

🤖 Build Failure Analysis

This build has failures. Claude has analyzed them - check the build annotations for details.

@crazytonyli
crazytonyli requested a review from jkmassel August 20, 2026 07:37
@crazytonyli crazytonyli added this to the 27.3 milestone Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants