five-on-it / apps/client/src/ui/BrowsePage
apps/client/src/ui/BrowsePage
The web client's game pages (GAME_DESIGN §16, TECHNICAL_SPECS §8.3), shown instead of the game when the address asks for one (browse.ts): the page of games (?browse: a search box, the sorts new, top and featured and the lists of friends' games and Your games (YourGames.tsx), a card per game with its preview, title, creator, rating and blurb) or a game's page (?game=<id>, GamePage), the admins' page (?admin, AdminPage), the creation page (?create, CreatePage), a lobby's page (?lobby=<id>, LobbyPage), the Play together screen (?together, TogetherPage), the player's own standing (?profile, ProfilePage) or the leaderboard (?leaderboard, LeaderboardPage). Above them the page's header (kit/PageHeader.tsx: the brand to the main menu, Back to the page's logical parent and the breadcrumbs, nav.ts, the pages telling it what they learn) and who the player is (AccountBar: the account's menu, with their Respect tier, Profile, Admin for an admin, the language and Sign out); every page set in the theme's colours and type (theme/theme.ts) with the kit's components (kit/), its toasts at the foot. Moving between pages loads the address, so the browser's back button works and a page can be shared by its link. The ids are the end-to-end tests' contract.