# 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
})
```