nextjs-rewrite (#5)
Reviewed-on: #5 Co-authored-by: David Gwilliam <dhgwilliam@gmail.com> Co-committed-by: David Gwilliam <dhgwilliam@gmail.com>
This commit was merged in pull request #5.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# Tournament Status Fix
|
||||
|
||||
## Problem
|
||||
Tournaments with past `eventDate` were incorrectly showing as "planned" because the `status` field was static and only updated when explicitly changed.
|
||||
|
||||
## Solution
|
||||
Implemented dynamic status calculation based on event date that automatically updates when tournaments are fetched.
|
||||
|
||||
## Changes Made
|
||||
|
||||
### 1. Created `src/lib/tournamentUtils.ts`
|
||||
- Added `getTournamentStatus(eventDate: Date | null): string` function
|
||||
- Returns "completed" if eventDate is in the past
|
||||
- Returns "planned" if eventDate is in the future or null
|
||||
- Added helper functions `isTournamentPast()` and `isTournamentFuture()`
|
||||
|
||||
### 2. Updated `src/app/api/tournaments/route.ts`
|
||||
- Modified GET endpoint to automatically update tournament statuses
|
||||
- Fetches all tournaments with participants and teams
|
||||
- Calculates status using `getTournamentStatus()` for each tournament
|
||||
- Updates database if calculated status differs from stored status
|
||||
- Returns tournaments with updated status
|
||||
|
||||
### 3. Updated `src/app/admin/tournaments/page.tsx`
|
||||
- Added import for `getTournamentStatus` utility
|
||||
- Calculates dynamic status for each tournament before rendering
|
||||
- Updates database if status needs to change
|
||||
- Displays calculated status in UI
|
||||
|
||||
### 4. Updated `src/app/admin/tournaments/[id]/page.tsx`
|
||||
- Added import for `getTournamentStatus` utility
|
||||
- Calculates and updates tournament status before rendering detail page
|
||||
- Ensures consistent status display across all tournament views
|
||||
|
||||
## Status Logic
|
||||
- **Past eventDate** → "completed" (gray badge: bg-gray-100 text-gray-800)
|
||||
- **Future eventDate or null** → "planned" (yellow badge: bg-yellow-100 text-yellow-800)
|
||||
|
||||
## Behavior
|
||||
- Status is automatically calculated and updated whenever tournaments are fetched
|
||||
- No manual intervention required
|
||||
- Existing tournaments with past dates are automatically marked as "completed"
|
||||
- Future tournaments or tournaments without dates remain "planned"
|
||||
Reference in New Issue
Block a user