Skip to content

feat(bulk-exporter): rename to Content Exporter, add select-all-matching [] - #11277

Merged
zacharyyankiver merged 4 commits into
masterfrom
content-exporter-select-all
Aug 19, 2026
Merged

feat(bulk-exporter): rename to Content Exporter, add select-all-matching []#11277
zacharyyankiver merged 4 commits into
masterfrom
content-exporter-select-all

Conversation

@zacharyyankiver

Copy link
Copy Markdown
Contributor

Summary

  • Rename the app from Entry Exporter to Content Exporter
  • Add Gmail-style "select all matching this search" banner/flow to the results table, allowing selection beyond the current page and export via the existing filtered-query path
  • Fix a font-size mismatch in the selection banner so the sentence text matches the inline action link's size

Test plan

  • npx tsc --noEmit passes
  • Verify selection banner appears after selecting all rows on a page, with correct singular/plural wording
  • Click "Select all N entries matching this search" and confirm banner updates to show total count with "Clear selection"
  • Export while in select-all-matching mode and confirm all matching entries are exported (not just the current page)
  • Confirm selection resets on search/page change
  • Visually confirm banner sentence text and "Clear selection" / "Select all..." link now render at the same font size

🤖 Generated with Claude Code

Rebrands the app display name from Entry/Bulk Exporter to Content
Exporter across the config screen, page, README, and app definition.
Also adds a Gmail-style select-all-across-pages flow to the results
table: once every row on the current page is checked, a banner offers
to select all entries matching the active search, and export reuses
the existing filtered-query export path so it scales beyond a single
fetched page instead of collecting every ID client-side.
Bump the selection bar sentence text from fontSizeS to fontSizeM so it
matches the TextLink action text's default size, fixing a visual
mismatch between the two.
@zacharyyankiver
zacharyyankiver requested review from a team as code owners August 19, 2026 17:15
@zacharyyankiver zacharyyankiver changed the title feat(bulk-exporter): rename to Content Exporter, add select-all-matching feat(bulk-exporter): rename to Content Exporter, add select-all-matching [] Aug 19, 2026
CI's prettier check flagged these files; run prettier --write to
resolve.
Previous fix used an auto-installed Prettier 3 (different default
formatting), which didn't match the repo's pinned 2.8.8 + root
.prettierrc used by CI.
@jjolton-contentful

Jared Jolton (jjolton-contentful) commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

I did a fresh pass and found one behavioral mismatch in the new select-all flow:

In ResultsList, when selectAllMatching is active, the banner says "All N entries matching this search are selected" and the header checkbox is forced checked (around lines 656 and 735), but each row checkbox still renders from selectedIds.includes(entry.sys.id) (around line 846).

That means in select-all-matching mode, the UI can claim all entries are selected while row checkboxes appear unchecked, which is confusing and makes single-row deselection behavior non-obvious.

Would you be open to making row checkbox checked state include selectAllMatching as well (or otherwise visually indicating full-page selection in that mode)?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@primeinteger
Adrian Meyer (primeinteger) dismissed their stale review August 19, 2026 17:29

i didn't test - trust Jared's review over mine

@zacharyyankiver
zacharyyankiver enabled auto-merge (squash) August 19, 2026 17:30
@jjolton-contentful

Copy link
Copy Markdown
Contributor

Follow-up: I’m treating my checkbox-state finding as non-blocking UX consistency (not export correctness). The select-all-matching export path is correct. I’m approving so auto-merge can proceed; we can optionally clean up row-checkbox visual consistency in a follow-up.

@zacharyyankiver
zacharyyankiver merged commit 3464ffb into master Aug 19, 2026
15 checks passed
@zacharyyankiver
zacharyyankiver deleted the content-exporter-select-all branch August 19, 2026 17:31
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.

3 participants