wrolpi/app/src/components
Roland bb14bf4074
review: finish the sweep the first pass claimed
The review was right that completeness was not done.  Every finding held up.

Three more pages mounted a `PageContainer` inside a route that already
provides page chrome -- `ManageMap`, `MapPins`, `ManageZim` -- so they sat a
further 1em down and 1em in from the tab bar than the viewers beside them.
The same defect as ArchiveSettings, in a shape the scan could not see: it
keyed on `PageContainer` route wrappers, and Map and Zim wrap their content
in a `wrolpi-stack` div instead.  It now locates routers first and asks
whether the enclosing return provides chrome either way, resolves
`element={<ErrorBoundary><Page/></ErrorBoundary>}` as well as the bare form,
and knows about `class` components -- `ManageZim` is one, and a scan that
only knew functions reported it clean.

Five top-level blocks still added their own margin to the stack's gap: the
dashboard search row (52.8px against 17.6px, on the most-looked-at page in
the app), the Playlists filter row, both Docs filter rows, and the Map pins
filter.  The extension page's hint panel had the same compound against a
Mantine Stack's gap.

ControllerPage held its four panel sections in a plain wrapper, so the
admin page's stack saw one child and the panels kept sharing edges -- the
exact hole Settings had.

The dashboard was reported clean in the first pass and was not.  The sweep
measured wrapper-to-wrapper gaps, and that row's margin is INSIDE a Media
wrapper, so it never appeared: the measurement, not the page, was at fault.

Cypress gap assertions now derive from the stack's own `row-gap` instead of a
12-28px range that assumed the default interface scale and would have
false-failed a correct layout at a larger one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 18:41:20 -06:00
..
admin review: finish the sweep the first pass claimed 2026-08-05 18:41:20 -06:00
calculators ui: scale the whole interface by 10%, off the root font-size 2026-08-05 18:40:54 -06:00
collections ui: only the top modal answers Escape, and the audited widths 2026-08-05 18:38:07 -06:00
inventory ui: pages own the space between their blocks 2026-08-05 18:41:17 -06:00
ui review: finish the sweep the first pass claimed 2026-08-05 18:41:20 -06:00
AddToPlaylist.js ui: Common.js and thirteen more files off Semantic 2026-08-05 18:34:50 -06:00
Apps.js fix: break the import cycle that put useCalculators in the TDZ 2026-08-05 18:37:53 -06:00
Archive.js ui: stop /archives/settings wrapping itself in a second PageContainer 2026-08-05 18:41:19 -06:00
ArchivePreview.js ui: Common.js and thirteen more files off Semantic 2026-08-05 18:34:50 -06:00
BulkTagModal.js ui: only the top modal answers Escape, and the audited widths 2026-08-05 18:38:07 -06:00
BulkTagModal.test.js ui: migrate Downloads, Upload, and BulkTagModal off Semantic 2026-08-05 18:35:32 -06:00
Calculators.js ui: fix the cypress failures, and two real defects behind them 2026-08-05 18:35:07 -06:00
CbzViewer.js ui: Common.js and thirteen more files off Semantic 2026-08-05 18:34:50 -06:00
Channels.cy.js Moving form fields. 2025-12-06 15:11:37 -07:00
Channels.js ui: stop /archives/settings wrapping itself in a second PageContainer 2026-08-05 18:41:19 -06:00
Common.js ui: pages own the space between their blocks 2026-08-05 18:41:17 -06:00
Common.test.js review: finish the sweep the first pass claimed 2026-08-05 18:41:20 -06:00
DatesSelector.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-05 18:34:58 -06:00
DesktopToggle.test.js ui: Common.js and thirteen more files off Semantic 2026-08-05 18:34:50 -06:00
Docs.js review: finish the sweep the first pass claimed 2026-08-05 18:41:20 -06:00
DomainEditPage.test.js app: handle form fetch failures without unhandled rejection 2026-07-16 19:40:28 -06:00
DomainsPage.test.js Reformatting code. 2025-12-06 15:11:37 -07:00
DomainTagging.test.js test: one place for fixtures, real providers instead of mocked context modules 2026-08-05 18:36:48 -06:00
DonatePage.js ui: only the top modal answers Escape, and the audited widths 2026-08-05 18:38:07 -06:00
Download.cy.js build: uninstall Semantic UI 2026-08-05 18:36:31 -06:00
Download.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-05 18:34:58 -06:00
Download.test.js Reformatting code. 2025-12-06 15:11:37 -07:00
ErrorBoundary.js ui: nine leaf files off Semantic, and the components they needed 2026-08-05 18:34:49 -06:00
FileBrowser.js review: record why make-directory is wider than rename 2026-08-05 18:40:51 -06:00
FileBrowser.test.js test: the theme drives the colour scheme, and mockModule takes the module 2026-08-05 18:36:53 -06:00
FilePreview.js ui: only the top modal answers Escape, and the audited widths 2026-08-05 18:38:07 -06:00
FilePreview.test.js File preview: Open in Slicer button for STL/3MF files. 2026-07-05 13:31:40 -06:00
Files.js ui: pages own the space between their blocks 2026-08-05 18:41:17 -06:00
Flasher.js ui: scale the whole interface by 10%, off the root font-size 2026-08-05 18:40:54 -06:00
Flasher.test.js ui: migrate Flasher.js off Semantic UI React 2026-08-05 18:35:45 -06:00
Headline.js ui: nine leaf files off Semantic, and the components they needed 2026-08-05 18:34:49 -06:00
HelpModal.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-05 18:34:58 -06:00
KeyboardShortcutsProvider.js ui: only the top modal answers Escape, and the audited widths 2026-08-05 18:38:07 -06:00
Map.js review: finish the sweep the first pass claimed 2026-08-05 18:41:20 -06:00
Map.test.js review: name the icon-only controls, and make two guards mean what they say 2026-08-05 18:40:49 -06:00
MapSearchView.js ui: widen a card's track by 25% 2026-08-05 18:41:06 -06:00
MapViewer.js review: close the mixed-unit gaps the scale left behind 2026-08-05 18:41:01 -06:00
Nav.js style: spell it "color" everywhere 2026-08-05 18:40:50 -06:00
otp.js Move One-Time Pad encryption to the browser (#479) 2026-06-13 13:52:34 -06:00
otp.test.js Move One-Time Pad encryption to the browser (#479) 2026-06-13 13:52:34 -06:00
Placeholder.js ui: Common.js and thirteen more files off Semantic 2026-08-05 18:34:50 -06:00
Playlists.js review: finish the sweep the first pass claimed 2026-08-05 18:41:20 -06:00
Playlists.test.js Add ordered collections (playlists): polymorphic items + item API (#475) 2026-06-11 19:46:34 -06:00
Search.js ui: the corner triggers, the More button, and the search modal 2026-08-05 18:38:04 -06:00
SearchFilterModal.test.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-05 18:34:58 -06:00
Share.js ui: only the top modal answers Escape, and the audited widths 2026-08-05 18:38:07 -06:00
ShortcutHint.js Displaying cmd+k/ctrl+k global search keyboard shortcut suggestion. 2026-02-23 16:07:22 -07:00
SortableTable.js ui: nine leaf files off Semantic, and the components they needed 2026-08-05 18:34:49 -06:00
Tables.js ui: nine leaf files off Semantic, and the components they needed 2026-08-05 18:34:49 -06:00
TaggedDeleteConfirmModal.js ui: let a confirmation choose its width 2026-08-05 18:40:53 -06:00
TaggedDeleteConfirmModal.test.js ui: let a confirmation choose its width 2026-08-05 18:40:53 -06:00
Theme.tsx ui: toasts move to the top right, get readable titles, and get tests 2026-08-05 18:37:19 -06:00
ThemeProvider.test.js test: act on review — observe the wiring, and stop the soft assertions 2026-08-05 18:37:22 -06:00
ThemeSamplePage.js ui: scale the whole interface by 10%, off the root font-size 2026-08-05 18:40:54 -06:00
Upload.js ui: migrate Downloads, Upload, and BulkTagModal off Semantic 2026-08-05 18:35:32 -06:00
Vars.js Restore "Most Views" download order 2026-07-07 16:34:50 -06:00
VideoPlayer.js ui: pages own the space between their blocks 2026-08-05 18:41:17 -06:00
VideoPlayer.test.js videos: address review — tighten auto-caption detection 2026-07-16 18:29:18 -06:00
Videos.js ui: scale the whole interface by 10%, off the root font-size 2026-08-05 18:40:54 -06:00
VncToggle.test.js ui: Common.js and thirteen more files off Semantic 2026-08-05 18:34:50 -06:00
Zim.js review: finish the sweep the first pass claimed 2026-08-05 18:41:20 -06:00
Zim.test.js fix: an unnamed language code took down the whole Zim manage page 2026-08-05 18:40:43 -06:00