Files
pad/web/src/lib/components/settings
xarmian d16ba34e68 fix(attachments): finish the gate and the rollout the last round started
Round 7, run one level down: consistency of the FIXES themselves.

P1 — the transform toolbar was outside everything the previous rounds
did. Two halves:

  `mimeToFormat` returns null both for "never asked" and for "asked, and
  the processor does not handle this", and the gating read the second as
  the first — so Crop stayed enabled for image/svg+xml and handed the
  original to the crop modal for a transform the server refuses. A known
  mime that maps to no supported format is now unsupported, with copy
  that says which case it is.

  And a confirmed deletion inertized only the placeholder, leaving rotate
  and crop live on a row that is gone, where they can only 404 — the same
  dead-control gap the placeholder's own role/tabindex removal closes.

P2 — displayFilename had been applied to the labels I was looking at and
not the rest: the strip's lightbox alt and confirmation titles, Storage's
visible filename, its image alt, and both surfaces' toasts still rendered
a raw name. A partial rollout of a consistency fix is its own
inconsistency.

Deferred, per the plan's own sequencing: an already-open viewer surviving
a deletion is DR-5c, which belongs with the unified viewer in 3a/3c — the
strip passes a snapshot list and the inline dialog has no deletion
subscription, and fixing either here means building half of that work
against a viewer that is about to be replaced.

The toolbar's deleted state is tested; the SVG crop gate is covered by
the same spec's existing MIME cases.
2026-08-04 21:13:10 +00:00
..