import type { Meta, StoryObj } from "@storybook/react-vite"; import { UpcomingEventsCard } from "./UpcomingEventsCard"; import type { CalendarPanelEvent } from "./UpcomingCalendarPanel"; const meta: Meta = { title: "Sport Season/UpcomingEventsCard", component: UpcomingEventsCard, parameters: { layout: "padded" }, }; export default meta; type Story = StoryObj; const tomorrowISO = "2026-04-15T17:00:00.000Z"; const nextWeekStr = "2026-04-22"; const inTwoWeeksStr = "2026-04-29"; const sampleEvents: CalendarPanelEvent[] = [ { id: "event-1", name: "NBA Playoffs Game 3", matchLabel: "Lakers vs Celtics", eventDate: null, earliestGameTime: tomorrowISO, eventType: "playoff_game", sportsSeasonId: "ss-nba-1", relevantParticipants: [ { id: "p1", name: "LeBron James" }, { id: "p2", name: "Jayson Tatum" }, ], sportName: "NBA", sportSeasonName: "2025 NBA Season", leagueName: "Alpha Dynasty", leagueId: "league-abc-123", sportsSeasonPageUrl: "/leagues/league-abc-123/sports-seasons/ss-nba-1", }, { id: "event-2", name: "F1 Monaco Grand Prix", matchLabel: null, eventDate: nextWeekStr, earliestGameTime: null, eventType: "race", sportsSeasonId: "ss-f1-1", relevantParticipants: [ { id: "p3", name: "Max Verstappen" }, { id: "p4", name: "Charles Leclerc" }, { id: "p5", name: "Fernando Alonso" }, ], sportName: "F1", sportSeasonName: "2025 F1 Season", leagueName: "Alpha Dynasty", leagueId: "league-abc-123", sportsSeasonPageUrl: "/leagues/league-abc-123/sports-seasons/ss-f1-1", }, { id: "event-3", name: "Champions League Quarter-Final", matchLabel: "Man City vs Real Madrid", eventDate: inTwoWeeksStr, earliestGameTime: null, eventType: "playoff_game", sportsSeasonId: "ss-ucl-1", relevantParticipants: [ { id: "p6", name: "Erling Haaland" }, ], sportName: "UCL", sportSeasonName: "2024-25 UCL", leagueName: "Hardcourt Elites", leagueId: "league-xyz-999", sportsSeasonPageUrl: "/leagues/league-xyz-999/sports-seasons/ss-ucl-1", }, ]; // Same event appearing in two leagues const multiLeagueEvents: CalendarPanelEvent[] = [ ...sampleEvents, { ...sampleEvents[0], leagueName: "Hardcourt Elites", leagueId: "league-xyz-999", relevantParticipants: [{ id: "p10", name: "Anthony Davis" }], }, ]; export const WithEvents: Story = { args: { events: sampleEvents, limit: 8, viewAllUrl: "/upcoming-events", }, }; export const MultiLeagueGrouped: Story = { args: { events: multiLeagueEvents, limit: 8, viewAllUrl: "/upcoming-events", }, }; export const WithLimit: Story = { args: { events: sampleEvents, limit: 1, viewAllUrl: "/upcoming-events", }, }; export const Empty: Story = { args: { events: [], viewAllUrl: "/upcoming-events", }, }; export const NoViewAll: Story = { args: { events: sampleEvents, }, };