flower
/

review · segments

Read-only home page structure map for anchor nav and game card filtering

claude 22 events 1 segments main

segment 1 of 1

Map home page structure for anchor navigation and game card filtering

Done

Read all key files: HomePageComponent.php (290 lines), home-page-component.blade.php (240 lines), game-stat-cards-modern.blade.php (full partial), raids-panel.blade.php (full partial), and TwitchStreamListing.php. Identified 8 visual sections in order, noted the disabled wipe status banner (@if(false)), documented the game loop variable ($games from HomePageComponent, each $game exposes twitch_id, name, slug, id, short_name), confirmed TwitchStreamListing has a $game_id property with #[Url] attribute and filterByGame($gameId) method for filtering by game. Reported with absolute file paths, line numbers, and verbatim snippets covering all 4 requested areas.

outcome

A comprehensive read-only map of the home page structure exists with exact file paths, line numbers, wrapping HTML elements, game data fields, and the game filtering mechanism in TwitchStreamListing.

next steps

  • Add id attributes to section wrappers for anchor navigation (game stat cards, Twitch viewers chart, raids panel, watched-term widget, goons location widget, live streams listing)
  • Make game stat cards clickable by adding wire:click='$parent.filterByGame($game->twitch_id)' or similar to each card in game-stat-cards-modern.blade.php
  • Create anchor nav bar above the main container with links to each section
  • Test scroll-to-anchor behavior and game card filtering functionality

key decisions

  • The game stat cards receive games from a $games variable (Eloquent Collection of Game models), each with twitch_id, name, slug, id, short_name fields — the loop is @foreach($games as $game) with inline MetricsService calls per game
  • TwitchStreamListing has $game_id property with #[Url] attribute (query-string bound) and a public filterByGame($gameId) method — filtering by game is already supported but not used on the home page
  • No sections currently have id, x-ref, or anchor attributes — all need to be added for nav links
  • The wipe status banner (lines 21-58) is wrapped in @if(false) — disabled, not just hidden
  • The 2-column grid switches from column on mobile (space-y-4) to row on lg (lg:grid-cols-2 lg:space-y-0) containing watched-term widget and goons-content-area

open questions

1 week ago 1 week ago