Complete implementation of pre-game setup flow allowing players to create games and submit lineups before gameplay starts. Backend Changes: - Extended games.py with create game, lineup submission, and game start endpoints - Added teams.py roster endpoint with season filtering - Enhanced SBA API client with player data fetching and caching - Comprehensive validation for lineup submission (position conflicts, DH rules) Frontend Changes: - Redesigned create.vue with improved team selection and game options - Enhanced index.vue with active/pending game filtering and navigation - Added lineup/[id].vue for interactive lineup builder with drag-and-drop - Implemented auth.client.ts plugin for client-side auth initialization - Added comprehensive TypeScript types for API contracts - Updated middleware for better auth handling Key Features: - Game creation with home/away team selection - Full lineup builder with position assignment and batting order - DH rule validation (pitcher can be excluded from batting order) - Season-based roster filtering (Season 3) - Auto-start game when both lineups submitted - Real-time game list updates Workflow: 1. Create game → select teams → set options 2. Submit home lineup → validate positions/order 3. Submit away lineup → validate positions/order 4. Game auto-starts → navigates to game page 5. WebSocket connection → loads game state Ready for Phase F4 - connecting gameplay UI to complete the at-bat loop. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
22 lines
612 B
TypeScript
22 lines
612 B
TypeScript
/**
|
|
* Auth Plugin - Client Side Only
|
|
*
|
|
* Initializes authentication state from localStorage before any navigation occurs.
|
|
* This ensures the auth middleware has the correct state when checking authentication.
|
|
*/
|
|
|
|
import { useAuthStore } from '~/store/auth'
|
|
|
|
export default defineNuxtPlugin(() => {
|
|
const authStore = useAuthStore()
|
|
|
|
// Initialize auth from localStorage on app load
|
|
authStore.initializeAuth()
|
|
|
|
console.log('[Auth Plugin] Initialized auth state:', {
|
|
isAuthenticated: authStore.isAuthenticated,
|
|
isTokenValid: authStore.isTokenValid,
|
|
hasUser: !!authStore.currentUser
|
|
})
|
|
})
|