Skip to content

Add infinite-scroll furni grid to InventoryFurniView using new Scrollbar component - #10

Open
billsonnn wants to merge 2 commits into
mainfrom
claude/frame-dragging-zindex-xoznk9
Open

Add infinite-scroll furni grid to InventoryFurniView using new Scrollbar component#10
billsonnn wants to merge 2 commits into
mainfrom
claude/frame-dragging-zindex-xoznk9

Conversation

@billsonnn

Copy link
Copy Markdown
Contributor

No description provided.

claude added 2 commits July 30, 2026 02:43
…bar component

Scrollbar draws Nitro's own track/thumb/up-down-button art over a real
overflow-y:auto element, exposing onScrollEnd for pagination and forwarding
a ref to the scrollable node for virtualizers. InventoryFurniView uses it
with @tanstack/react-virtual to paginate a furni grid; real inventory data
isn't wired up yet (FurniListEventMessage is still a stub), so items are
synthesized from real catalog classnames as a clearly-marked placeholder.

Also fixes two pre-existing bugs that were silently breaking all themed UI:
- TabContent had no bounded height, so tab content overflowed instead of
  scrolling (now flex-1 min-h-0 with overflow-hidden).
- Every asset folder under assets/images was PascalCase while theme.css
  references them lowercase, 404ing every background/border image on a
  case-sensitive filesystem. Renamed all folders to match.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017N3QN64RQkS3mP1w6EkLGg
… view

Dropmenu becomes a real dropdown: click/keyboard to open, DropmenuItem rows
in a bordered popover (reusing Scrollbar for long lists), controlled or
uncontrolled selection, closes on select/outside-click/Escape. Wired into
InventoryFurniView as a working floor/wall/all filter.

Extracted the furni grid's virtualization into a generic ItemGrid component
that takes a renderItem prop, so any item shape/visual can be plugged in
instead of the previously hardcoded FurnitureImage markup.

Also fixes a real bug found while testing the new filter: `pool.push(...map.values())`
silently dropped every element when the target array started empty, wiping
out the wall/floor pool. Replaced with Array.from(...).concat(...).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017N3QN64RQkS3mP1w6EkLGg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants