feat: add grid view with RA artwork and adjustable tile size#187
Conversation
You can now browse your library in a grid layout. No boxart yet — that's coming soon — but the grid is there and ready for it. Card size is adjustable and saves between sessions.
ab52cbc to
2628d23
Compare
There was a problem hiding this comment.
Non-blocking feedback (2)
-
Validate persisted grid settings before using them — src/layouts/RomListLayout.vue
listModeandgridItemSizeare read directly fromlocalStorageand cast/parsed without guards. If either value is invalid (stale/corrupted/manual edit), grid mode can render withitemSize = NaN, which breaks tile sizing and VirtualScroller math.
Consider normalizing on read (allow onlylist|grid) and clamping grid size to80–220with a default fallback. -
Make the full slider track
no-dragin the toolbar — src/components/AppToolbar.vue#L159
The toolbar correctly marks interactive elements as-webkit-app-region: no-drag, but the new selectors only cover.p-slider-handleand.p-slider-range. The unfilled.p-slidertrack can still sit under the draggable titlebar region, so clicking that area may drag the window instead of moving the thumb.
Add.p-sliderto the same selector list so the whole control is consistently interactive.
If you want me to push fixes, reply with item numbers (for example: please fix 1 or please fix 1-2).
system-badge + game-name empty state for ROMs without metadata
using a ResizeObserver to compute items-per-row dynamically
items trigger IPC calls; the store's cache prevents duplicate requests
size slider (80–220 px) in the toolbar; both are persisted to
localStorage under r_view_mode and r_grid_item_size
works identically in grid mode
RomList and RomGrid based on the shared mode preference
https://claude.ai/code/session_01Xwsxkb6kbcbvGm39cynvfv