diff --git a/app/components/standings/PointsDisplay.tsx b/app/components/standings/PointsDisplay.tsx index ee26457..30ae95b 100644 --- a/app/components/standings/PointsDisplay.tsx +++ b/app/components/standings/PointsDisplay.tsx @@ -30,7 +30,7 @@ export function PointsDisplay({
{displayed.toFixed(2)} - {projectedPoints!.toFixed(2)} proj + {projectedPoints?.toFixed(2)} proj
); diff --git a/app/hooks/useSortableData.ts b/app/hooks/useSortableData.ts index 9f75c3a..8236e6d 100644 --- a/app/hooks/useSortableData.ts +++ b/app/hooks/useSortableData.ts @@ -40,10 +40,10 @@ export function useSortableData( const key = sortConfig.key; const dir = sortConfig.direction; - return [...data].sort((a, b) => { + return data.toSorted((a, b) => { // Use custom comparator if provided if (comparators?.[key]) { - return comparators[key]!(a, b, dir); + return comparators[key]?.(a, b, dir) ?? 0; } const aVal = a[key]; diff --git a/app/models/__tests__/upcoming-calendar.test.ts b/app/models/__tests__/upcoming-calendar.test.ts index 7ed2ef7..76a86f8 100644 --- a/app/models/__tests__/upcoming-calendar.test.ts +++ b/app/models/__tests__/upcoming-calendar.test.ts @@ -366,12 +366,12 @@ describe("getUpcomingEventsForDraftedParticipants — bracket sports", () => { ); expect(result).toHaveLength(2); - const game1 = result.find((r) => r.id === "e1|1")!; - const game2 = result.find((r) => r.id === "e1|2")!; - expect(game1.earliestGameTime).toBe(gameTime1.toISOString()); - expect(game1.matchLabel).toBe("Knockout Stage Game #1"); - expect(game2.earliestGameTime).toBe(gameTime2.toISOString()); - expect(game2.matchLabel).toBe("Knockout Stage Game #2"); + const game1 = result.find((r) => r.id === "e1|1"); + const game2 = result.find((r) => r.id === "e1|2"); + expect(game1?.earliestGameTime).toBe(gameTime1.toISOString()); + expect(game1?.matchLabel).toBe("Knockout Stage Game #1"); + expect(game2?.earliestGameTime).toBe(gameTime2.toISOString()); + expect(game2?.matchLabel).toBe("Knockout Stage Game #2"); }); it("sets matchLabel to round name only (no game number) for single-game matchup", async () => { diff --git a/app/services/standings-sync/afl.ts b/app/services/standings-sync/afl.ts index d1290bf..56feb35 100644 --- a/app/services/standings-sync/afl.ts +++ b/app/services/standings-sync/afl.ts @@ -51,7 +51,7 @@ export class AflStandingsAdapter implements StandingsSyncAdapter { // Squiggle already includes `rank` (ladder position), sorted by ladder position. // Sort ascending by rank so leagueRank matches the AFL ladder order. - const sorted = [...entries].sort((a, b) => a.rank - b.rank); + const sorted = entries.toSorted((a, b) => a.rank - b.rank); return sorted.map((entry): FetchedStandingsRecord => ({ teamName: entry.name,