Skip to content

Extend the experimental content list redesign to the pages list - #23344

Open
nbradbury wants to merge 5 commits into
trunkfrom
issue/pages-list-redesign
Open

nbradbury wants to merge 5 commits into
trunkfrom
issue/pages-list-redesign

Conversation

@nbradbury

@nbradbury nbradbury commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

TL;DR

Puts the wordpress-rs pages list behind the same Posts list redesign experimental feature as #23316 — cards, filter chips, the density toggle — and relabels the feature Posts and Pages list redesign. The pages list renders through the shared ui/rs/contentlist/ components rather than growing a second copy.

Two caveats to note:

  1. Page hierarchy does not work yet and is also broken in the existing RS pages list
  2. As with the experimental post list, featured images are a bit blurry
  3. There is some code duplication between the new posts & pages features

These will each be handled separately.

Screenshot_1789757529

Testing instructions

  • Switch to a site that has several pages (or ask for an invite to one, or ask Claude Cowork to generate the pages for you)
  • Me → Experimental Features → Posts and Pages list redesign
  • Open Pages on a site that routes to the rs screen — an app-password site, or a WP.com site with android_wp_rs_wpcom on.
  • Verify cards, serif titles and filter chips appear, and that swiping between tabs still works

Views on a WordPress.com site:

  • Verify a shimmer appears in the meta line, then resolves to a view count
  • Verify scrolling back does not re-fetch
  • Verify Drafts and Trashed show no views and no stuck skeleton

Self-hosted site:

  • Open Pages on a self-hosted site with no Jetpack stats
  • Verify rows show the date only, with no stuck skeleton

Density toggle:

  • Tap the density icon in the top bar
  • Verify condensed drops the excerpt, the images and the views, and rows get visibly shorter
  • Verify the choice carries over to the Posts list, and survives leaving and reopening Pages

The pages rs list now renders through the same ui/rs/contentlist components
as the posts list, so the two cannot drift apart, and the experimental
feature is relabelled to say it covers both.
@dangermattic

dangermattic commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator
2 Warnings
⚠️ This PR is larger than 300 lines of changes. Please consider splitting it into smaller PRs for easier and faster reviews.
⚠️ PR is not assigned to a milestone.

Generated by 🚫 Danger

@wpmobilebot

wpmobilebot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

App Icon📲 You can test the changes from this Pull Request in WordPress Android by scanning the QR code below to install the corresponding build.

App NameWordPress Android
Build TypeDebug
Versionpr23344-6d973f1
Build Number1498
Application IDorg.wordpress.android.prealpha
Commit6d973f1
Installation URL7a080lc221e60
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@wpmobilebot

wpmobilebot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

App Icon📲 You can test the changes from this Pull Request in Jetpack Android by scanning the QR code below to install the corresponding build.

App NameJetpack Android
Build TypeDebug
Versionpr23344-6d973f1
Build Number1498
Application IDcom.jetpack.android.prealpha
Commit6d973f1
Installation URL4kfvputsvftr0
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@wpmobilebot

Copy link
Copy Markdown
Contributor

🤖 Build Failure Analysis

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

A pull-to-refresh evicted the empty view-count entries without asking for
them again, so those rows kept their skeleton with nothing left to resolve
it. The in-flight claim is also only taken once a semaphore permit is
granted, so a page queued twice could be fetched twice.

Moves ContentListMenuAction next to the row state so the menu file no
longer trips detekt's MatchingDeclarationName.
Inlines locals that were read once, hoists the row callbacks the redesigned
and legacy branches were both declaring, and states the homepage badge
condition directly. No behaviour change.
@codecov

codecov Bot commented Sep 18, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 22.76657% with 268 lines in your changes missing coverage. Please review.
✅ Project coverage is 38.00%. Comparing base (8d8ce45) to head (6d973f1).

Files with missing lines Patch % Lines
.../android/ui/pagesrs/screens/PageRsRedesignedRow.kt 0.00% 59 Missing ⚠️
...ss/android/ui/pagesrs/screens/PagesRsListScreen.kt 0.00% 54 Missing ⚠️
...rdpress/android/ui/pagesrs/PagesRsListViewModel.kt 53.06% 33 Missing and 13 partials ⚠️
...droid/ui/rs/contentlist/ContentListOverflowMenu.kt 0.00% 30 Missing ⚠️
.../android/ui/pagesrs/screens/PageRsTabListScreen.kt 0.00% 24 Missing ⚠️
...dpress/android/ui/rs/contentlist/ContentListRow.kt 0.00% 18 Missing ⚠️
...roid/ui/rs/contentlist/ContentListDensityToggle.kt 0.00% 11 Missing ⚠️
.../wordpress/android/ui/pagesrs/PageRsListUiState.kt 71.42% 5 Missing and 5 partials ⚠️
.../android/ui/postsrs/screens/PostRsTabListScreen.kt 0.00% 8 Missing ⚠️
...android/ui/rs/contentlist/ContentListRowUiState.kt 0.00% 5 Missing ⚠️
... and 2 more
Additional details and impacted files
@@            Coverage Diff             @@
##            trunk   #23344      +/-   ##
==========================================
- Coverage   38.00%   38.00%   -0.01%     
==========================================
  Files        2272     2275       +3     
  Lines      127689   127940     +251     
  Branches    17979    18033      +54     
==========================================
+ Hits        48527    48619      +92     
- Misses      75161    75302     +141     
- Partials     4001     4019      +18     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nbradbury nbradbury added the UI label Sep 18, 2026
The pager composes the neighbouring tab during a drag and its visible-row
stream reports against that tab, so a single shared set was overwritten by
the neighbour. The active tab's queued view-count fetches then re-checked
that set once a permit freed, found the wrong ids and were dropped with
nothing left to retry them, and a later refresh handed the retry another
tab's ids.
@nbradbury
nbradbury marked this pull request as ready for review September 18, 2026 17:34
@nbradbury
nbradbury requested a review from adalpari September 18, 2026 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants