The Lobby is the first screen players see before every session. It centralises every configuration decision — game mode, team composition, player names, timer length, and (in Impostor mode) the number of impostors — into a single page so the group can agree on settings before handing the device to the first performer. GET /lobbyDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/dlampatricio/lamubi/llms.txt
Use this file to discover all available pages before exploring further.
Mode Selection
Two modes are available. Selecting a mode updates the layout and the “How to Play” instructions shown on the right-hand side of the screen.- Charades
- Impostor
Component:
HandleTeamsCardTeams and their players are managed through the HandleTeamsCard component. Each team must have at least one player, and every player must have a non-empty name before the game can start.The round timer is configured with HandleTimeCard. The selected duration (in seconds) becomes initial_timer in the game store and is reset at the start of every turn.How to Play steps shown:- Choose teams and add at least one player per team.
- Name every player — blank names block the Start button.
- Set how many seconds each performer has per round.
- Hand the device to the first performer at the Handoff screen.
- Actors may not speak — mime, gesture, and facial expressions only.
prepareGame() is called, then a fetch to /api/movies?count=8 is issued. The response is passed to startGame(movies), which loads the first movie as current_movie and queues the rest. The router then navigates to /handoff.Controls
| Control | Location | Action |
|---|---|---|
| Mode selector buttons | Top of page | Calls setGameMode('charades' | 'impostor'), re-renders the setup panel |
| Begin Match button | Footer | Calls handleStartLogic() — see Start Conditions |
ThemeToggle | Header (top-right) | Toggles light / dark theme |
LanguageToggle | Header (top-right) | Switches the UI language |
cursor-not-allowed) when canStart is false. No toast or error message is shown; the hint text “Name all players” appears beneath the player count instead.
Start Conditions
ThecanStart boolean is derived directly from the current store state on every render.
- Charades
- Impostor
- Every team has at least one player (
team.players.length > 0). - Every player in every team has a non-blank name (
player.name.trim().length > 0).
Mad Max and La La Land) but with empty player lists, so canStart is false on first load.