BL-17002: Restyle the Image Chooser

Preflight re-run on 2026-10-09 against HEAD efe3ec7: every reviewer finished; nothing waiting on a decision.

Draft PR Mergeable Bots quiet 0 decisions waiting Board: Personal Review

What this PR is about

Problem

BL-17002 raised two things about the Image Chooser: the search box was undersized for the dialog, and the preview of the selected image sat in a wide checkerboard "letterbox" even when the picture had no transparency. More generally the dialog wasted space: results in three fixed columns with gaps, and the image details as centered text under the preview.

What the PR does

BloomDesktop #8460 (target Version6.5) pins a restyled gallery from bloom-image-gallery #22 and adds its strings.

  • Search: the field spans the results column, with a compact square button.
  • Results: rows that fill the width, each image at its true shape; a ring and check mark on the selection. When the first page doesn't fill the grid, the next page loads without scrolling. Art of Reading never repeats its results.
  • Preview: the checkerboard is on the picture itself, so it shows only through transparent parts.
  • Sidebar and details pane: a narrower sidebar; details as label/value rows with a "View on <site>" link. With nothing selected, the pane shows the source's About section.
  • Strings: Common.Dimensions and Common.FileSize (translate="no"); License, Copyright and Illustrator/Photographer reuse existing strings.

Quality gate

Typecheck (Bloom)passed — pnpm typecheck against the pinned gallery (854e8c7), after syncing node_modules to the lockfile
Typecheck (gallery)not re-run on 854e8c7, which only removes the prompt and its string; it passed on the commit before
Lint (gallery)not re-run on 854e8c7; 0 errors on the commit before
Front-end tests (Bloom, vitest)passed at efe3ec7: 855 passed · 5 skipped
Gallery tests (vitest)not re-run on 854e8c7; 17 passed on the commit before
Production bundlenot re-run this run; it built on the previous HEAD, and this run's change only removes a JSX branch and a string
C# testsnot run — no C# in the diff, and no C# test reads the XLF files
XLFchecked: every string id the pinned gallery uses exists exactly once in the English XLF
Merge with Version6.5up to date, mergeable
Live check in BloomBefore/after screenshots and the Art of Reading thumbnails checked in a running Bloom on an earlier HEAD. The details pane with nothing selected has not been looked at in Bloom since the prompt was removed.

What changed this run

No code changes. The previous HEAD (efe3ec7, which drops the details-pane prompt) had not been through preflight, so this run collected Devin's review of it, corrected the PR description and the card's test ideas to match, and re-ran the gate. Bloom commits

Reviewer outcomes

Local reviewLight pass, done inline (the Bloom diff is a pin and two XLF entries): clean.
DevinComplete at efe3ec7. Across the branch: six bugs and four Investigate flags over both PRs, each fixed or answered on its own thread and resolved; Devin marks all the bugs resolved. The newest flag was that the PR description still promised the removed prompt; fixed and resolved. Gallery · Bloom
Greptile (gallery)Complete. Its first review found the two bugs Devin also found (paging, cropped thumbnails); both fixed, replied to and resolved. Re-review on the current commit: no findings.
CIBloom PR: pr-automation passed. Gallery PR: no CI beyond Greptile.

Worth knowing

  • The automatic next-page request has not fired in a live run: at the dialog's size the first page of Openverse results always overflows the grid. It needs a tall window and a search with wide images to trigger.
  • The lockfile diff is about 30,000 lines because pnpm rewrote the file in its own format (2-space indents, single quotes). Master already has that format and .prettierignore requires it. The content change is only the gallery's hash and integrity.
  • Merge order: Bloom pins a commit on the gallery's PR branch. That commit stays reachable once #22 merges, so either order works, but merge #22 too.

Next step

Send your answers back

Copies your answer as text to paste into a Claude session.