Skip to content

Added stats to the automations list on mobile - #30355

Merged
zach1618 merged 2 commits into
mainfrom
zach-ny-1540-mobile-view-for-automations-list-table
Aug 27, 2026
Merged

Added stats to the automations list on mobile#30355
zach1618 merged 2 commits into
mainfrom
zach-ny-1540-mobile-view-for-automations-list-table

Conversation

@zach1618

Copy link
Copy Markdown
Contributor

ref https://linear.app/ghost/issue/NY-1540/mobile-view-for-automations-list-table

Why are you making it?

Below the lg breakpoint the automations list showed only a name, description and status badge — the three stat columns were hidden outright. The stats are the reason to open the list at all, so their absence made the screen read as unfinished rather than deliberately condensed.

What does it do?

Each row now lays out on a four-track grid below lg: the name spans the first row, the three stats sit on the second, and the status badge stays pinned right. Placement is explicit rather than wrapping the stats in a container, because a wrapper element between tr and td is invalid markup and would break the real table layout that returns at lg.

Each stat carries its own label beneath its value, matching the newsletter list in settings, since the column headers are hidden at that width. Column widths are scoped to lg so they no longer fight the mobile grid, and the skeleton uses the same layout so nothing shifts as the list loads.

The desktop table is untouched.

Why is this something Ghost users or developers need?

The automations list is the entry point to the feature, and its stats are what tell you whether an automation is doing anything. On mobile that information was simply missing, leaving a list that looked broken rather than compact.

Notes for review

  • Design follows the attached Figma frame: value on top, muted label below, 24px vertical padding per row.
  • Without Stripe connected the paid welcome flow is filtered out, so the common real-world mobile view is a single row with three stats beneath it.
  • No automated test: the change is presentational, and jsdom doesn't evaluate breakpoints, so a test could only assert that the labels render at all. The 7 existing tests still pass.

  • I've read and followed the Contributor Guide
  • I've explained my change
  • I've written an automated test to prove my change works

ref https://linear.app/ghost/issue/NY-1540/mobile-view-for-automations-list-table

The three stat columns were hidden below `lg`, so on mobile the list showed
only a name, description and status. The stats are the reason to open the
list at all, and their absence made the screen read as unfinished rather
than deliberately condensed.

Each row now lays out on a four-track grid below `lg`: the name spans the
first row, the stats sit on the second, and the status badge stays pinned
right. Placement is explicit rather than wrapping the stats in a container,
because a wrapper between `tr` and `td` is invalid markup and would break
the real table layout that returns at `lg`.

Each stat carries its own label beneath its value, matching the newsletter
list in settings, since the column headers are hidden at that width. Column
widths are scoped to `lg` so they no longer fight the mobile grid, and the
skeleton uses the same layout so nothing shifts as the list loads.
@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: QUIET

Plan: Pro Plus

Run ID: 39d609b6-80bb-4044-b4c4-7c707a3c809f

📥 Commits

Reviewing files that changed from the base of the PR and between a5685f1 and aa346bc.

📒 Files selected for processing (1)
  • apps/admin/src/automations/components/automations-list.tsx

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (10)
  • GitHub Check: Build E2E Public App Assets
  • GitHub Check: App Playwright Acceptance Tests (@tryghost/admin)
  • GitHub Check: Build Docker Images
  • GitHub Check: Check migration integrity
  • GitHub Check: Stripe fixture checks
  • GitHub Check: Build Admin
  • GitHub Check: Unit tests (Node 22.23.1)
  • GitHub Check: Check app version bump
  • GitHub Check: Lint
  • GitHub Check: Analyze (javascript-typescript)
🧰 Additional context used
📓 Path-based instructions (6)
Review Admin UI for existing Shade reuse, correct component layer, semantic

⚙️ CodeRabbit configuration file

Files:

  • apps/admin/src/automations/components/automations-list.tsx
Review lens: "where does this data become trusted?"

⚙️ CodeRabbit configuration file

Files:

  • apps/admin/src/automations/components/automations-list.tsx
Prioritise concrete correctness, security, data-integrity, compatibility,

⚙️ CodeRabbit configuration file

Files:

  • apps/admin/src/automations/components/automations-list.tsx
Type-safe boundaries: Fail only if the PR:

📄 CodeRabbit inference engine (Custom checks)

Files:

  • apps/admin/src/automations/components/automations-list.tsx
Build new features in React,

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • apps/admin/src/automations/components/automations-list.tsx
Always use `pnpm`, never npm or Yarn.

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • apps/admin/src/automations/components/automations-list.tsx
🔇 Additional comments (1)
apps/admin/src/automations/components/automations-list.tsx (1)

22-40: LGTM!

Also applies to: 75-92, 167-172, 191-207


Walkthrough

AutomationsList now uses responsive four-column grid rows below the lg breakpoint. Loading and populated rows place names, statistics, and status cells consistently. Mobile statistic cells display inline labels and statistic skeletons remain visible. Large-screen rows retain configured statistic column widths and table-cell behavior.

Suggested reviewers: evanhahn, 9larsons, troyciesco

Merge Risk: ⚪ Minimal · up to aa346

The automations list now shows labeled stats on mobile while preserving the desktop table layout. No actionable merge-blocking risk remains beyond normal checks and review.

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding automation statistics to the mobile list.
Description check ✅ Passed The description directly explains the responsive mobile layout, visible statistics, skeleton updates, desktop behavior, and testing decision.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Type-Safe Boundaries ✅ Passed PASS. The PR diff versus origin/main changes only automations-list.tsx. It adds responsive classes and renders labels from the pre-existing static AUTOMATION_STAT_COLUMNS constant. The existing …
New Files Are Typescript ✅ Passed PASS: The diff from origin/main contains one modified file, apps/admin/src/automations/components/automations-list.tsx. No files were added, and the changed file is TypeScript/TSX. Therefore, the ch…
Full details: Type-Safe Boundaries

Explanation

PASS. The PR diff versus origin/main changes only automations-list.tsx. It adds responsive classes and renders labels from the pre-existing static AUTOMATION_STAT_COLUMNS constant. The existing AutomationBrowseItem prop and automation.stats reads were already present; the PR adds no HTTP/API, environment, storage, filesystem, or event boundary read. It adds no any, unchecked cast, @ts-ignore, or @ts-nocheck, and it does not add a type that duplicates a schema-described shape.

Full details: New Files Are Typescript

Explanation

PASS: The diff from origin/main contains one modified file, apps/admin/src/automations/components/automations-list.tsx. No files were added, and the changed file is TypeScript/TSX. Therefore, the check's failure condition is not met.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch zach-ny-1540-mobile-view-for-automations-list-table

Comment @coderabbitai help to get the list of available commands.

ref https://linear.app/ghost/issue/NY-1540/mobile-view-for-automations-list-table

Resolves against "Updated automation table to handle missing stats"
(#30313), which landed on the same component after this branch was cut.

That change hides the stat columns entirely when the browse response omits
stats, so the mobile stats and their labels now render inside its
`showRunAnalytics` guard rather than unconditionally. The status badge keeps
both its new grid placement and the conditional desktop widths introduced
there.
@nx-cloud

nx-cloud Bot commented Aug 27, 2026

Copy link
Copy Markdown

🤖 Nx Cloud AI Fix

Ensure the fix-ci command is configured to always run in your CI pipeline to get automatic fixes in future runs. For more information, please see https://nx.dev/ci/features/self-healing-ci


View your CI Pipeline Execution ↗ for commit aa346bc

Command Status Duration Result
nx run @tryghost/admin:test:acceptance ✅ Succeeded 8m 19s View ↗
nx run-many -t test:unit -p @tryghost/admin ✅ Succeeded 2m 7s View ↗
nx run ghost-monorepo:lint:boundaries ✅ Succeeded 23s View ↗
nx run-many -t lint -p @tryghost/admin,ghost-mo... ✅ Succeeded 1m 25s View ↗
nx run @tryghost/admin:build ✅ Succeeded 14s View ↗
nx run-many --target=build --projects=tag:publi... ✅ Succeeded <1s View ↗
nx run @tryghost/e2e:test:fixtures ✅ Succeeded 2s View ↗

💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗


☁️ Nx Cloud last updated this comment at 2026-08-27 20:14:12 UTC

@zach1618
zach1618 requested a review from troyciesco August 27, 2026 20:14
@zach1618
zach1618 merged commit 5bb268e into main Aug 27, 2026
50 checks passed
@zach1618
zach1618 deleted the zach-ny-1540-mobile-view-for-automations-list-table branch August 27, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants