wrolpi/app/src/components
Roland 3204fb51ea
ui: centre the pagination strip
It sat hard against the left edge of its container despite three call
sites wrapping it in `<center>` or `text-align: center`.

Mantine builds a Pagination as a BLOCK root -- full width, so those
wrappers had nothing to centre -- holding a flex Group that carries the
controls and lays them out at `flex-start`.  So `justify-content` on the
root does nothing at all; it has to reach the Group.

Setting `--group-justify` on the root does not work either, which cost a
detour: Group defaults that prop and writes the variable INLINE on its own
element, where an inherited value cannot reach it.  The property itself is
fair game, since Mantine only ever reads the variable from a hashed class,
so `.wrolpi-pagination .mantine-Group-root { justify-content: center }` at
(0,2,0) is what lands.

The three wrappers are now plain divs keeping their margin.  `<center>` is
a deprecated element that was doing nothing here.

Two tests: the gap either side is equal -- measured, not read off
`justify-content` -- with an assertion that the container really is wider
than the strip, since otherwise the equality holds trivially at 0 and 0.
And an inverse: at 240px nothing hangs off the LEFT edge.  That one is the
risk centring introduces -- overflow in a flex-start row spills right,
where it can be scrolled to, but centred it spills both ways and the first
page becomes unreachable.  It passed before this change and must keep
passing after.

Verified red first (0px left against 230px right), and the wrong-element
fix -- centring the root rather than the Group -- reddens it again.

1080 jest, 160 in ui-layout.cy.js, clean build.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-08 18:05:47 -06:00
..
admin test: act on review — the browser test named LoadStatistic but never mounted it 2026-08-08 18:05:46 -06:00
calculators fix: break the import cycle that put useCalculators in the TDZ 2026-08-08 18:05:47 -06:00
collections build: uninstall Semantic UI 2026-08-08 18:04:03 -06:00
inventory ui: route genuine success and failure through the roles 2026-08-08 18:05:46 -06:00
ui ui: centre the pagination strip 2026-08-08 18:05:47 -06:00
AddToPlaylist.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Apps.js fix: break the import cycle that put useCalculators in the TDZ 2026-08-08 18:05:47 -06:00
Archive.js ui: cards get legible titles, contained posters, and meta beside the title 2026-08-08 18:05:47 -06:00
ArchivePreview.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
BulkTagModal.js ui: migrate Downloads, Upload, and BulkTagModal off Semantic 2026-08-08 18:04:02 -06:00
BulkTagModal.test.js ui: migrate Downloads, Upload, and BulkTagModal off Semantic 2026-08-08 18:04:02 -06:00
Calculators.js ui: fix the cypress failures, and two real defects behind them 2026-08-08 18:04:01 -06:00
CbzViewer.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Channels.cy.js Moving form fields. 2025-12-06 15:11:37 -07:00
Channels.js ui: Channels.js and Playlists.js off Semantic 2026-08-08 18:04:01 -06:00
Common.js ui: act on review -- corner chrome, a swallowed className, and the poster frame 2026-08-08 18:05:47 -06:00
Common.test.js ui: act on review -- corner chrome, a swallowed className, and the poster frame 2026-08-08 18:05:47 -06:00
DatesSelector.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
DesktopToggle.test.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Docs.js ui: migrate Docs.js and Zim.js off Semantic UI React 2026-08-08 18:04:01 -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-08 18:04:04 -06:00
DonatePage.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
Download.cy.js build: uninstall Semantic UI 2026-08-08 18:04:03 -06:00
Download.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -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-08 18:04:00 -06:00
FileBrowser.js test: act on review — the skeleton guard was reading the wrong layer 2026-08-08 18:05:45 -06:00
FileBrowser.test.js test: the theme drives the colour scheme, and mockModule takes the module 2026-08-08 18:04:04 -06:00
FilePreview.js ui: FileBrowser.js and FilePreview.js off Semantic 2026-08-08 18:04:02 -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: centre the pagination strip 2026-08-08 18:05:47 -06:00
Flasher.js ui: route genuine success and failure through the roles 2026-08-08 18:05:46 -06:00
Flasher.test.js ui: migrate Flasher.js off Semantic UI React 2026-08-08 18:04:02 -06:00
Headline.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
HelpModal.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
KeyboardShortcutsProvider.js ui: fix the cypress failures, and two real defects behind them 2026-08-08 18:04:01 -06:00
Map.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
MapSearchView.js ui: centre the pagination strip 2026-08-08 18:05:47 -06:00
MapViewer.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
Nav.js ui: test the last four components, and put the last four in the gallery 2026-08-08 18:05:45 -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-08 18:04:00 -06:00
Playlists.js ui: Channels.js and Playlists.js off Semantic 2026-08-08 18:04:01 -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: fix the cypress failures, and two real defects behind them 2026-08-08 18:04:01 -06:00
SearchFilterModal.test.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
Share.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -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-08 18:04:00 -06:00
Tables.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
TaggedDeleteConfirmModal.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
TaggedDeleteConfirmModal.test.js Models like Archive/Video/Doc can be deleted, even if they are tagged. User is shown a warning and must confirm deletion of tagged files. 2026-05-03 19:14:15 -06:00
Theme.tsx ui: toasts move to the top right, get readable titles, and get tests 2026-08-08 18:05:44 -06:00
ThemeProvider.test.js test: act on review — observe the wiring, and stop the soft assertions 2026-08-08 18:05:45 -06:00
ThemeSamplePage.js fix: break the import cycle that put useCalculators in the TDZ 2026-08-08 18:05:47 -06:00
Upload.js ui: migrate Downloads, Upload, and BulkTagModal off Semantic 2026-08-08 18:04:02 -06:00
Vars.js Restore "Most Views" download order 2026-07-07 16:34:50 -06:00
VideoPlayer.js ui: migrate VideoPlayer.js off Semantic UI React 2026-08-08 18:04:01 -06:00
VideoPlayer.test.js videos: address review — tighten auto-caption detection 2026-07-16 18:29:18 -06:00
Videos.js ui: act on review -- corner chrome, a swallowed className, and the poster frame 2026-08-08 18:05:47 -06:00
VncToggle.test.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Zim.js ui: centre the pagination strip 2026-08-08 18:05:47 -06:00