import type { Meta, StoryObj } from "@storybook/react-vite"; import { RecentScoresCard } from "./RecentScoresCard"; import type { ScoreEventEntry } from "./RecentScoresCard"; const meta: Meta = { title: "Standings/RecentScoresCard", component: RecentScoresCard, parameters: { layout: "padded", }, }; export default meta; type Story = StoryObj; const now = new Date(); const baseEvent: ScoreEventEntry = { id: "event-1", teamId: "team-1", teamName: "Thunderhawks", ownerName: "Chris M.", scoringEventId: "se-1", scoringEventName: "NBA Playoffs Game 3", sportName: "NBA", pointsDelta: "25.5", occurredAt: now.toISOString(), participants: [ { id: "p1", name: "LeBron James" }, { id: "p2", name: "Jayson Tatum" }, ], }; export const Empty: Story = { args: { events: [], }, }; export const SingleEvent: Story = { args: { events: [baseEvent], }, }; export const MultipleEvents: Story = { args: { events: [ baseEvent, { ...baseEvent, id: "event-2", teamName: "Storm Chasers", ownerName: "Sarah J.", scoringEventName: "F1 Monaco Grand Prix", sportName: "F1", pointsDelta: "45", occurredAt: new Date(now.getTime() - 3 * 60 * 60 * 1000).toISOString(), participants: [ { id: "p3", name: "Max Verstappen" }, { id: "p4", name: "Charles Leclerc" }, ], }, { ...baseEvent, id: "event-3", teamName: "Golden Eagles", ownerName: "Mike T.", scoringEventName: "Champions League Quarter-Final", sportName: "UCL", pointsDelta: "30.0", occurredAt: new Date(now.getTime() - 12 * 60 * 60 * 1000).toISOString(), participants: [ { id: "p5", name: "Erling Haaland" }, { id: "p6", name: "Vinicius Jr" }, ], }, ], }, }; export const RecentAndOld: Story = { args: { events: [ { ...baseEvent, id: "event-recent-1", pointsDelta: "20", occurredAt: new Date(now.getTime() - 30 * 60 * 1000).toISOString(), }, { ...baseEvent, id: "event-recent-2", teamName: "Lightning Bolts", ownerName: "Alex K.", scoringEventName: "NBA Playoffs Game 4", sportName: "NBA", pointsDelta: "15.5", occurredAt: new Date(now.getTime() - 6 * 60 * 60 * 1000).toISOString(), participants: [{ id: "p7", name: "Stephen Curry" }], }, { ...baseEvent, id: "event-old-1", teamName: "Cobras", ownerName: "Jennifer L.", scoringEventName: "Premier League Matchday 35", sportName: "Premier League", pointsDelta: "35", occurredAt: new Date(now.getTime() - 2 * 24 * 60 * 60 * 1000).toISOString(), participants: [ { id: "p8", name: "Mohamed Salah" }, { id: "p9", name: "Kevin De Bruyne" }, ], }, { ...baseEvent, id: "event-old-2", teamName: "Wolves", ownerName: null, scoringEventName: "Snooker World Championship", sportName: "Snooker", pointsDelta: "12", occurredAt: new Date(now.getTime() - 3 * 24 * 60 * 60 * 1000).toISOString(), participants: [{ id: "p10", name: "Ronnie O'Sullivan" }], }, ], }, }; export const IntegerPoints: Story = { args: { events: [ { ...baseEvent, pointsDelta: "10", occurredAt: new Date(now.getTime() - 1 * 60 * 60 * 1000).toISOString() }, { ...baseEvent, id: "event-2", pointsDelta: "25", occurredAt: new Date(now.getTime() - 5 * 60 * 60 * 1000).toISOString() }, { ...baseEvent, id: "event-3", pointsDelta: "40", occurredAt: new Date(now.getTime() - 10 * 60 * 60 * 1000).toISOString() }, ], }, }; export const DecimalPoints: Story = { args: { events: [ { ...baseEvent, pointsDelta: "12.5", occurredAt: new Date(now.getTime() - 1 * 60 * 60 * 1000).toISOString() }, { ...baseEvent, id: "event-2", pointsDelta: "8.3", occurredAt: new Date(now.getTime() - 5 * 60 * 60 * 1000).toISOString() }, { ...baseEvent, id: "event-3", pointsDelta: "33.7", occurredAt: new Date(now.getTime() - 10 * 60 * 60 * 1000).toISOString() }, ], }, }; export const NoOwnerName: Story = { args: { events: [ { ...baseEvent, ownerName: null, occurredAt: new Date(now.getTime() - 1 * 60 * 60 * 1000).toISOString() }, { ...baseEvent, id: "event-2", teamName: "Iron Wolves", ownerName: null, occurredAt: new Date(now.getTime() - 5 * 60 * 60 * 1000).toISOString() }, ], }, }; export const SingleParticipant: Story = { args: { events: [ { ...baseEvent, participants: [{ id: "p1", name: "LeBron James" }] }, { ...baseEvent, id: "event-2", participants: [{ id: "p2", name: "Max Verstappen" }] }, ], }, }; export const MultipleParticipants: Story = { args: { events: [ { ...baseEvent, participants: [ { id: "p1", name: "LeBron James" }, { id: "p2", name: "Jayson Tatum" }, { id: "p3", name: "Stephen Curry" }, ], }, { ...baseEvent, id: "event-2", participants: [ { id: "p4", name: "Max Verstappen" }, { id: "p5", name: "Charles Leclerc" }, { id: "p6", name: "Fernando Alonso" }, { id: "p7", name: "Lewis Hamilton" }, ], }, ], }, };