# Components Directory Vue 3 components organized by feature domain. All use ` ``` ## Common Patterns ### Two-Step Player Lookup ```typescript // GameState has LineupPlayerState (minimal) const batterState = computed(() => gameStore.currentBatter) // Get full Lineup with player details const batterLineup = computed(() => { if (!batterState.value) return null return gameStore.findPlayerInLineup(batterState.value.lineup_id) }) // Access player data const batterName = computed(() => batterLineup.value?.player.name ?? 'Unknown') const batterHeadshot = computed(() => batterLineup.value?.player.headshot) ``` ### Conditional Rendering by Team ```typescript const isMyTurn = computed(() => { // Check if current user's team needs to act return gameStore.battingTeamId === myTeamId }) ```