Frontend UX improvements: - Single-click Discord OAuth from home page (no intermediate /auth page) - Auto-redirect authenticated users from home to /games - Fixed Nuxt layout system - app.vue now wraps NuxtPage with NuxtLayout - Games page now has proper card container with shadow/border styling - Layout header includes working logout with API cookie clearing Games list enhancements: - Display team names (lname) instead of just team IDs - Show current score for each team - Show inning indicator (Top/Bot X) for active games - Responsive header with wrapped buttons on mobile Backend improvements: - Added team caching to SbaApiClient (1-hour TTL) - Enhanced GameListItem with team names, scores, inning data - Games endpoint now enriches response with SBA API team data Docker optimizations: - Optimized Dockerfile using --chown flag on COPY (faster than chown -R) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
17 lines
437 B
TypeScript
17 lines
437 B
TypeScript
/**
|
|
* Returns the appropriate API URL based on context:
|
|
* - Server-side (SSR): Uses internal Docker network URL
|
|
* - Client-side: Uses public URL
|
|
*/
|
|
export function useApiUrl(): string {
|
|
const config = useRuntimeConfig()
|
|
|
|
if (import.meta.server) {
|
|
// Server-side: use internal URL for Docker networking
|
|
return config.apiUrlInternal as string
|
|
}
|
|
|
|
// Client-side: use public URL
|
|
return config.public.apiUrl as string
|
|
}
|