brackt/app/types/standings.ts
Claude 0b74a6a2d2
Redesign standings page with sortable table, 7-day change, and chart repositioned
- Move point progression chart below the standings table
- Replace separate Points/Projected/Placement columns with:
  - Single stacked "actual / projected" Points column (shared PointsDisplay component)
  - "7-Day Change" column showing points gained + rank change over past 7 days
- Remove Placement breakdown column
- Sort ties alphabetically by team name (rank sort only)
- All columns are sortable via new reusable useSortableData hook
- Add sevenDayPointChange to TeamStandingWithChange type and model

https://claude.ai/code/session_01CuCKFVYbpsKSQoFDcTYfY7
2026-03-22 17:14:33 +00:00

43 lines
1.1 KiB
TypeScript

/**
* Shared types for standings that can be used in both server and client code
*/
export interface TeamStanding {
teamId: string;
teamName: string;
ownerName?: string | null;
totalPoints: number;
currentRank: number;
previousRank: number | null;
rankChange: number; // Positive = moved up, negative = moved down
placementCounts: {
first: number;
second: number;
third: number;
fourth: number;
fifth: number;
sixth: number;
seventh: number;
eighth: number;
};
participantsRemaining: number;
calculatedAt: Date;
// Phase 5.4: Expected value projections
actualPoints?: number | null;
projectedPoints?: number | null;
participantsFinished?: number | null;
// 7-day point change (optional, present when loaded with change data)
sevenDayPointChange?: number;
}
export interface TeamStandingSnapshot {
date: Date;
rank: number;
totalPoints: number;
}
export interface TeamStandingWithChange extends TeamStanding {
sevenDayRankChange: number;
sevenDayOldRank: number | null;
sevenDayPointChange: number;
}