From 7471d5ac45b9e017d9779cad068e8be4d0664e31 Mon Sep 17 00:00:00 2001 From: Mark Toh Date: Wed, 21 Oct 2026 19:43:39 +0800 Subject: [PATCH 1/2] feat(esports): add tournament hub, grouped series, and league details --- public/assets/images/esports-arena.jpg | Bin 0 -> 218274 bytes src/components/App/App.tsx | 3 + src/components/Esports/Esports.tsx | 430 +++++++++++++++++++ src/components/Esports/LeagueIcon.tsx | 72 ++++ src/components/Esports/SeriesSchedule.tsx | 196 +++++++++ src/components/Esports/Styled.ts | 289 +++++++++++++ src/components/Esports/TournamentDetails.tsx | 154 +++++++ src/components/Esports/groupSeriesByDate.ts | 42 ++ src/components/Esports/useEsportsData.ts | 60 +++ src/components/Header/Header.tsx | 1 + src/components/Matches/Matches.tsx | 191 +++++++- src/components/Matches/series.ts | 87 ++++ src/components/TeamLogo/TeamLogo.tsx | 99 +++++ src/lang/en-US.json | 42 ++ src/lang/pt-BR.json | 42 ++ src/lang/ru-RU.json | 42 ++ src/lang/zh-CN.json | 42 ++ testcafe/tests/esports.ts | 80 ++++ 18 files changed, 1868 insertions(+), 4 deletions(-) create mode 100644 public/assets/images/esports-arena.jpg create mode 100644 src/components/Esports/Esports.tsx create mode 100644 src/components/Esports/LeagueIcon.tsx create mode 100644 src/components/Esports/SeriesSchedule.tsx create mode 100644 src/components/Esports/Styled.ts create mode 100644 src/components/Esports/TournamentDetails.tsx create mode 100644 src/components/Esports/groupSeriesByDate.ts create mode 100644 src/components/Esports/useEsportsData.ts create mode 100644 src/components/Matches/series.ts create mode 100644 src/components/TeamLogo/TeamLogo.tsx create mode 100644 testcafe/tests/esports.ts diff --git a/public/assets/images/esports-arena.jpg b/public/assets/images/esports-arena.jpg new file mode 100644 index 0000000000000000000000000000000000000000..366d38bec92d739a2c235c0411712e61b1803ed6 GIT binary patch literal 218274 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�Crew|T`gc9dc#Fy7okHETqlSD}(_$bLbY(IMY^ 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 z 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 import("../Esports/Esports")); const Status = React.lazy(() => import("../Status/Status")); const Explorer = React.lazy(() => import("../Explorer/Explorer")); @@ -208,6 +209,8 @@ const App = (props: AppProps) => { + + { + const rank = tierOrder.indexOf(tier); + return rank === -1 ? tierOrder.length : rank; +}; + +type League = { leagueid: number; name: string; tier: string | null; banner?: string | null; ticket?: string | null }; +type Team = { team_id: number; name: string; logo_url: string; rating: number; last_match_time: number }; +type Player = { account_id: number; name: string; personaname: string; team_name: string; avatar: string }; +type Hero = { id: number; localized_name: string; pro_pick: number; pro_ban: number; pro_win: number }; +type LeagueMatch = ProfessionalMatch & { radiant_team_name: string | null; dire_team_name: string | null }; +type Resource = { loading: boolean; error: boolean; retry: () => void }; + +/** + * Loading and empty-state inputs for an independent API-backed section. + * @example + * const props: ResourceStatusProps = { + * resource: { loading: false, error: false, retry: () => {} }, empty: true, + * }; + */ +type ResourceStatusProps = { + /** Request state and action for retrying a failed request. */ + resource: Resource; + /** Whether the section contains no visible records. */ + empty: boolean; +}; + +/** + * Displays loading, retry, or empty-state feedback for an independent data resource. + * @param props Resource state and empty-result indicator. + * @param props.resource Loading/error flags and the retry callback. + * @param props.empty Whether the resource has no entries to show. + * @returns Status feedback, or null when data is ready and nonempty. + * @example + * + * // Displays the localized empty-results message. + */ +const ResourceStatus = ({ resource, empty }: ResourceStatusProps) => { + const strings = useStrings(); + if (resource.loading) return

{strings.esports_loading}

; + if (resource.error) return ( +
+

{strings.esports_error}

+ +
+ ); + return empty ?

{strings.esports_empty}

: null; +}; + +/** + * Route parameters supported by the Esports page. + * @example + * const params: EsportsRouteParams = { leagueId: "19719" }; + */ +export type EsportsRouteParams = { + /** Optional directory view, such as tournaments or players. */ + view?: string; + /** League identifier when displaying tournament details. */ + leagueId?: string; +}; + +/** + * Router-provided props for the Esports page, including match, location, and history. + * @example + * // React Router supplies EsportsProps when rendering the route. + * + */ +export type EsportsProps = RouteComponentProps; + +/** + * Renders the Esports route selected by the router parameters. + * @param props React Router route props. + * @param props.match Route match containing an optional directory view or league ID. + * @returns The Esports overview, directory, or tournament detail page. + * @example + * + * // /esports/leagues/19719 renders the league detail view. + */ +export default function Esports({ match }: EsportsProps) { + const strings = useStrings(); + const [search, setSearch] = useState(""); + const [tier, setTier] = useState("all"); + const { leagueId, view } = match.params; + const tournamentsView = view === "tournaments"; + const playersView = view === "players"; + const leagues = useEsportsData("leagues"); + const teams = useEsportsData("teams"); + const recent = useEsportsData(leagueId ? null : "proMatches"); + const leaguesWithProMatches = useMemo(() => { + const matchesByLeague = new Map(); + recent.data.forEach((match) => { + const matches = matchesByLeague.get(match.leagueid) || []; + matches.push(match); + matchesByLeague.set(match.leagueid, matches); + }); + return leagues.data.map((league) => ({ + ...league, + tier: league.tier || "unknown", + matches: (matchesByLeague.get(league.leagueid) || []).map((match) => ({ + ...match, + league_name: league.name, + })), + })); + }, [leagues.data, recent.data]); + const proMatchesWithLeagues = useMemo( + () => leaguesWithProMatches.flatMap((league) => league.matches), + [leaguesWithProMatches], + ); + + const players = useEsportsData(playersView ? "proPlayers" : null); + const heroes = useEsportsData(leagueId || tournamentsView || playersView ? null : "heroStats"); + const leagueGames = useEsportsData(leagueId ? `leagues/${leagueId}/matches` : null); + const league = leagues.data.find((item) => String(item.leagueid) === leagueId); + const normalizedSearch = search.trim().toLowerCase(); + const availableTiers = useMemo( + () => [...new Set(leaguesWithProMatches.map((league) => league.tier))].sort((a, b) => tierRank(a) - tierRank(b) || a.localeCompare(b)), + [leaguesWithProMatches], + ); + const activity = useMemo(() => { + const result = new Map(); + proMatchesWithLeagues.forEach((game) => { + const previous = result.get(game.leagueid); + result.set(game.leagueid, { count: (previous?.count || 0) + 1, latest: Math.max(previous?.latest || 0, game.start_time) }); + }); + return result; + }, [proMatchesWithLeagues]); + const tournamentRows = useMemo(() => leaguesWithProMatches + .map((item) => ({ ...item, latest: activity.get(item.leagueid)?.latest || 0 })) + .filter((item) => (tier === "all" || item.tier === tier) && item.name.toLowerCase().includes(normalizedSearch)) + .sort((a, b) => b.latest - a.latest || tierRank(a.tier) - tierRank(b.tier) || b.leagueid - a.leagueid), + [leaguesWithProMatches, activity, normalizedSearch, tier]); + const recentLeagues = tournamentRows.filter((item) => activity.has(item.leagueid)).slice(0, 6); + const normalizedLeagueGames = useMemo(() => leagueGames.data.map((game) => ({ + ...game, + league_name: league?.name || "", + radiant_name: game.radiant_team_name || game.radiant_name || teams.data.find((team) => team.team_id === game.radiant_team_id)?.name || null, + dire_name: game.dire_team_name || game.dire_name || teams.data.find((team) => team.team_id === game.dire_team_id)?.name || null, + })), [leagueGames.data, league?.name, teams.data]); + const series = groupMatchesBySeries(leagueId ? normalizedLeagueGames : proMatchesWithLeagues); + const filteredSeries = series.filter((item) => [item.league_name, item.team1, item.team2].some((name) => name?.toLowerCase().includes(normalizedSearch))); + const topTeams = [...teams.data].filter((team) => team.last_match_time > Date.now() / 1000 - 180 * 86400) + .sort((a, b) => b.rating - a.rating).slice(0, 10); + const topHeroes = [...heroes.data].sort((a, b) => (b.pro_pick + b.pro_ban) - (a.pro_pick + a.pro_ban)).slice(0, 10); + const filteredPlayers = players.data.filter((player) => [player.name, player.personaname, player.team_name].some((name) => name?.toLowerCase().includes(normalizedSearch))); + const sectionIcons: Record = { + [strings.esports_tournaments]: , + [strings.esports_recent_tournaments]: , + [strings.esports_tournament_details]: , + [strings.esports_players]: , + [strings.esports_top_teams]: , + [strings.esports_contested_heroes]: , + }; + /** + * Returns a localized tier name, retaining readable labels for unfamiliar tiers. + * @param value API tier identifier, or null for an unknown tier. + * @returns A localized display label. + * @example + * tierLabel("premium"); // "Premium" in the English locale + * tierLabel(null); // "Unknown" in the English locale + */ + const tierLabel = (value: string | null) => { + switch (value) { + case "premium": return strings.tier_premium; + case "professional": return strings.tier_professional; + case "amateur": return strings.esports_amateur; + case "excluded": return strings.esports_excluded; + case "unknown": + case null: return strings.general_unknown; + default: return value.charAt(0).toUpperCase() + value.slice(1); + } + }; + /** + * Chooses the theme accent used for a tournament tier. + * @param value API tier identifier, or null when unavailable. + * @returns A theme color token. + * @example + * tierColor("professional"); // constants.colorBlue + */ + const tierColor = (value: string | null) => { + switch (value) { + case "premium": return constants.colorGolden; + case "professional": return constants.colorBlue; + case "amateur": return constants.colorGreen; + default: return constants.textColorSecondary; + } + }; + /** + * Renders a tournament tier as a compact colored badge. + * @param value Tier identifier to label and color. + * @returns A tier badge with a decorative trophy icon. + * @example + * tierBadge("premium"); // Trophy badge with the localized Premium label + */ + const tierBadge = (value: string | null) => ( + + + ); + /** + * Renders a section heading and an optional navigation link. + * @param title Localized heading text used to select a section icon. + * @param to Optional destination for the view-all link. + * @returns An icon heading with an optional view-all link. + * @example + * panelHeader(strings.esports_tournaments, "/esports/tournaments"); + */ + const panelHeader = (title: string, to?: string) => ( +

{sectionIcons[title] || }{title}

{to && {strings.esports_view_all} →}
+ ); + const participatingTeams = new Set(normalizedLeagueGames.flatMap((game) => + [game.radiant_team_id, game.dire_team_id].filter((id) => !!id), + )).size; + const tournamentColumns = [ + { + field: "name", + displayName: strings.esports_tournaments, + displayFn: (row: League) => ( + + + ), + }, + { field: "tier", displayName: strings.esports_tier, displayFn: (row: League) => tierBadge(row.tier) }, + { field: "leagueid", displayName: strings.th_league, sortFn: true }, + { field: "latest", displayName: strings.esports_latest_match, sortFn: true, displayFn: (row: { latest: number }) => row.latest ? : "—" }, + ]; + /** + * Resolves artwork for the league associated with a series. + * @param row Series containing the league ID and display name. + * @returns A league image with initials as its fallback. + * @example + * leagueIcon(seriesRow); // Artwork for seriesRow.leagueid, or league initials + */ + const leagueIcon = (row: MatchSeries) => { + const league = leagues.data.find((item) => item.leagueid === row.leagueid); + return ; + }; + const playerColumns = [ + { field: "name", displayName: strings.esports_players, displayFn: (row: Player) => {row.name || row.personaname || row.account_id} }, + { field: "team_name", displayName: strings.th_team_name, sortFn: true }, + ]; + + const pageHeading = ( + } + className="top-heading" + /> + ); + + return ( + + + + {pageHeading} + + + + {strings.esports_overview} + {strings.esports_tournaments} + + + + {strings.esports_title} + {leagueId && {strings.esports_tournaments}} + + {leagueId + ? league?.name.trim() || leagueId + : tournamentsView ? strings.esports_tournaments + : playersView ? strings.esports_players : strings.esports_overview} + + + + {(tournamentsView || playersView || !leagueId) && ( + + setSearch(event.target.value)} size="small" /> + + )} + + {leagueId ? ( + <> + + {panelHeader(strings.esports_tournament_details, "/esports/tournaments")} + + {league && } +

{strings.esports_league_coverage}

+ {!leagueGames.loading && !leagueGames.error && ( + +
{series.length}{strings.matches_series}
+
{normalizedLeagueGames.length}{strings.th_matches}
+
{participatingTeams}{strings.header_teams}
+
+ )} +
+ + {panelHeader(strings.matches_series)} + +

{strings.esports_schedule_hint}

+ {!leagueGames.loading && } +
+ + {panelHeader(strings.th_matches)} + + `/esports/leagues/${row.leagueid}`, leagueIcon)} + loading={leagueGames.loading} + paginated + keyFn={(row: { key: string }) => row.key} + /> + + + ) : tournamentsView ? ( + + {panelHeader(strings.esports_tournaments)} +

{strings.esports_directory_description}

+ setTier(event.target.value)} size="small" style={{ marginBottom: 20 }}> + + {availableTiers.map((value) => )} + + +
row.leagueid} /> + + ) : playersView ? ( + + {panelHeader(strings.esports_players)} + +
row.account_id} /> + + ) : ( + <> + + {panelHeader(strings.esports_recent_tournaments, "/esports/tournaments")} +

{strings.esports_recent_coverage}

+ + {recentLeagues.map((item) => ( + + + ))} +
+ + {panelHeader(strings.esports_recent_series, "/matches/series")} + +
`/esports/leagues/${row.leagueid}`, leagueIcon)} loading={recent.loading} keyFn={(row: { key: string }) => row.key} /> + + + + {panelHeader(strings.esports_top_teams, "/teams")} +

{strings.esports_team_coverage}

+ +
{row.name} }, + { field: "rating", displayName: strings.th_rating, displayFn: (row: Team) => {Math.round(row.rating)} }, + ]} /> + + + {panelHeader(strings.esports_contested_heroes, "/heroes")} +

{strings.esports_meta_coverage}

+ +
{row.localized_name} }, + { field: "contested", displayName: strings.esports_picks_bans, displayFn: (row: Hero) => row.pro_pick + row.pro_ban }, + { field: "winrate", displayName: strings.th_winrate, displayFn: (row: Hero) => 0 && row.pro_win / row.pro_pick >= 0.5}>{row.pro_pick ? `${Math.round(row.pro_win / row.pro_pick * 100)}%` : "—"} }, + ]} /> + + + + )} + + ); +} diff --git a/src/components/Esports/LeagueIcon.tsx b/src/components/Esports/LeagueIcon.tsx new file mode 100644 index 0000000000..626ec2349a --- /dev/null +++ b/src/components/Esports/LeagueIcon.tsx @@ -0,0 +1,72 @@ +/** + * @file LeagueIcon.tsx + * @description Displays available league artwork with Unicode-aware initials when artwork is missing or fails to load. + */ + +import React, { useState } from "react"; +import styled from "styled-components"; +import constants from "../constants"; + +/** + * Frames league artwork or initials in a fixed-size decorative badge. + * @example + * TI2 + */ +const Icon = styled.span` + display: inline-flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + width: 36px; + height: 36px; + overflow: hidden; + border: 1px solid rgba(100, 160, 210, 0.25); + border-radius: 4px; + background: rgba(100, 160, 210, 0.12); + color: ${constants.colorBlue}; + font-family: ${constants.fontFamilyFuturistic}; + font-size: ${constants.fontSizeSmall}; + font-weight: 600; + img { width: 100%; height: 100%; object-fit: contain; } +`; + +/** + * Artwork sources and identity for a league icon. + * @example + * const props: LeagueIconProps = { name: "The International 2026", banner: null }; + */ +export type LeagueIconProps = { + /** League name used for the image title and fallback initials. */ + name: string; + /** Optional public banner URL; null indicates no supplied artwork. */ + banner?: string | null; + /** Optional public image URL used when no banner URL is supplied. */ + ticket?: string | null; +}; + +/** + * Renders league artwork or initials when no usable image is available. + * @param props League identity and optional artwork sources. + * @param props.name League name used to derive fallback initials. + * @param props.banner Optional public HTTP(S) banner URL. + * @param props.ticket Optional public HTTP(S) ticket image URL, used if no banner URL exists. + * @returns A fixed-size decorative league icon. + * @example + * + * // Displays TI2 when no image is available. + */ +export default function LeagueIcon({ name, banner, ticket }: LeagueIconProps) { + const [failedImage, setFailedImage] = useState(""); + const image = [banner, ticket].find((value) => value && /^https?:\/\//.test(value)) || ""; + const words = name.match(/[\p{L}\p{N}]+/gu) || []; + const initials = (words.length > 1 + ? words.slice(0, 3).map((word) => Array.from(word)[0]).join("") + : Array.from(words[0] || "?").slice(0, 3).join("")).toUpperCase(); + return ( + + ); +} diff --git a/src/components/Esports/SeriesSchedule.tsx b/src/components/Esports/SeriesSchedule.tsx new file mode 100644 index 0000000000..6334fcc756 --- /dev/null +++ b/src/components/Esports/SeriesSchedule.tsx @@ -0,0 +1,196 @@ +/** + * @file SeriesSchedule.tsx + * @description Displays series in collapsible daily groups with team logos, scores, formats, and numbered game links. + * @remarks Dates use the viewer’s local timezone. The latest series is expanded by default. + */ + +import React from "react"; +import { Link } from "react-router-dom"; +import styled from "styled-components"; +import CalendarMonthIcon from "@mui/icons-material/CalendarMonth"; +import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; +import useStrings from "../../hooks/useStrings.hook"; +import { MatchSeries } from "../Matches/series"; +import { SeriesTeam } from "../Matches/Matches"; +import TeamLogo from "../TeamLogo/TeamLogo"; +import TableLink from "../Table/TableLink"; +import constants from "../constants"; +import { groupSeriesByDate } from "./groupSeriesByDate"; + +/** + * Arranges date cards in a responsive schedule grid. + * @example + * {dateCards} + */ +const Schedule = styled.div` + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); + align-items: start; + gap: 16px; +`; + +/** + * Provides a collapsible date group with an accessible summary control. + * @example + * October 21, 2026{seriesRows} + */ +const Day = styled.details` + border: 1px solid ${constants.dividerColor}; + border-radius: 3px; + overflow: hidden; + > summary { + display: flex; + align-items: center; + gap: 8px; + padding: 10px 12px; + background: ${constants.tableHeaderSurfaceColor}; + font-family: ${constants.fontFamilyFuturistic}; + font-size: ${constants.fontSizeMedium}; + cursor: pointer; + list-style: none; + svg:first-child { color: ${constants.colorBlue}; width: 18px; height: 18px; } + svg:last-child { margin-left: auto; width: 18px; height: 18px; } + &::-webkit-details-marker { display: none; } + } + &[open] > summary > svg:last-child { transform: rotate(180deg); } + summary:focus-visible { outline: 2px solid ${constants.primaryLinkColor}; outline-offset: -2px; } +`; + +/** + * Provides a collapsible matchup row with opposing teams and game details. + * @example + * Alpha 2 – 1 Beta{gameLinks} + */ +const Series = styled.details` + border-top: 1px solid ${constants.dividerColor}; + > summary { + display: grid; + grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr); + align-items: stretch; + cursor: pointer; + list-style: none; + &::-webkit-details-marker { display: none; } + &:hover { background: ${constants.secondarySurfaceColor}; } + > a, > span.team { + display: flex; + align-items: center; + justify-content: space-between; + gap: 6px; + padding: 10px 8px; + color: ${constants.textColorPrimary}; + font-family: ${constants.fontFamilyFuturistic}; + font-size: ${constants.fontSizeSmall}; + overflow-wrap: anywhere; + } + > :last-child { flex-direction: row-reverse; text-align: right; } + .winner { background: rgba(90, 180, 110, .14); color: ${constants.colorGreen}; } + img, .team-logo { width: 28px; height: 28px; flex-shrink: 0; object-fit: contain; } + } +`; + +/** + * Centers the recorded series score and format between the teams. + * @example + * 2 – 1BO3 + */ +const Score = styled.span` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 3px; + border-left: 1px solid ${constants.dividerColor}; + border-right: 1px solid ${constants.dividerColor}; + font-variant-numeric: tabular-nums; + strong { font-size: ${constants.fontSizeMedium}; } + small { color: ${constants.textColorSecondary}; font-size: ${constants.fontSizeTiny}; } +`; + +/** + * Styles expanded series metadata and vertically ordered game links. + * @example + * {numberedGameLinks} + */ +const Games = styled.div` + padding: 12px; + background: ${constants.secondarySurfaceColor}; + .series-meta { display: block; color: ${constants.textColorSecondary}; margin-bottom: 8px; } + > a { display: block; margin-top: 6px; } +`; + +/** + * Series and team metadata rendered by the daily schedule. + * @example + * const props: SeriesScheduleProps = { series: [], teams: [] }; + */ +export type SeriesScheduleProps = { + /** Grouped series with scores and chronological game records. */ + series: MatchSeries[]; + /** Team records used to resolve logo URLs. */ + teams: SeriesTeam[]; +}; + +/** + * Renders series by local start date, expanding the latest series initially. + * @param props Series schedule data. + * @param props.series Grouped series, including team scores and chronological game lists. + * @param props.teams Team records used to resolve logo URLs. + * @returns Collapsible date cards containing team matchups and game links. + * @example + * const series = groupMatchesBySeries(leagueMatches); + * + * // Groups matches by date and opens the latest series. + */ +export default function SeriesSchedule({ series, teams }: SeriesScheduleProps) { + const strings = useStrings(); + const latestSeries = series.reduce((latest, row) => + !latest || row.first_match_time > latest.first_match_time ? row : latest, + undefined); + /** + * Renders one team’s name and logo with an optional winner highlight. + * @param id Team ID used for the profile link and logo lookup. + * @param name Display name, or null to use the localized unknown label. + * @param winner Whether the recorded score reaches the wins required by the series format. + * @returns A team link, or plain team identity when no ID exists. + * @example + * team(8965331, "Chandogs", true); + * // Team profile link and logo with winner highlighting. + */ + const team = (id: number | null | undefined, name: string | null, winner: boolean) => { + const label = <>{name || strings.general_unknown} item.team_id === id)?.logo_url} style={{ width: 28, height: 28, flexShrink: 0, objectFit: "contain" }} />; + return id ? {label} + : {label}; + }; + return ( + + {groupSeriesByDate(series).map(({ date, series: rows }) => ( + + + {rows.map((row) => { + const type = row.series_type; + const knownFormat = typeof type === "number" && Number.isInteger(type) && type >= 0 && type <= 2; + const format = knownFormat ? `BO${type * 2 + 1}` : strings.general_unknown; + const winsNeeded = knownFormat ? type + 1 : Infinity; + return ( + + + {team(row.team1Id, row.team1, row.team1Wins >= winsNeeded)} + + {row.team1Wins} – {row.team2Wins} + {format} + + {team(row.team2Id, row.team2, row.team2Wins >= winsNeeded)} + + + {row.league_name} · {row.series_id ? `#${row.series_id}` : strings.esports_standalone_match} + {strings.esports_format}: {format} + {row.games.map((game, index) => {strings.matches_game} {index + 1} · {game.match_id})} + + + ); + })} + + ))} + + ); +} diff --git a/src/components/Esports/Styled.ts b/src/components/Esports/Styled.ts new file mode 100644 index 0000000000..4daf7b72f9 --- /dev/null +++ b/src/components/Esports/Styled.ts @@ -0,0 +1,289 @@ +/** + * @file Styled.ts + * @description Defines responsive Esports layouts, tournament cards, badges, statistics, and the shared photo banner. + */ + +import styled from "styled-components"; +import { Link } from "react-router-dom"; +import constants from "../constants"; + +/** + * Provides shared Esports typography and content spacing. + * @example + * {pageContent} + */ +export const Hub = styled.div` + padding-bottom: 24px; + font-family: ${constants.fontFamily}; + font-size: ${constants.fontSizeSmall}; + color: ${constants.textColorPrimary}; + + h2 { + display: flex; + align-items: center; + gap: 8px; + margin: 0; + font-family: ${constants.fontFamilyFuturistic}; + font-size: ${constants.fontSizeCommon}; + font-weight: ${constants.fontWeightNormal}; + line-height: 1.6; + svg { width: 20px; height: 20px; flex-shrink: 0; } + } + + p { + color: ${constants.textColorSecondary}; + font-size: ${constants.fontSizeSmall}; + line-height: 1.6; + margin: 0 0 16px; + } + + .MuiInputBase-root, .MuiInputLabel-root, .MuiButton-root { + font-family: ${constants.fontFamilyFuturistic}; + font-size: ${constants.fontSizeSmall}; + } +`; + +/** + * Separates the section navigation from page content. + * @example + * {tabLinks} + */ +export const Intro = styled.div` + margin-bottom: 16px; + border-bottom: 1px solid ${constants.dividerColor}; +`; + +/** + * Displays responsive Esports navigation with active-route indicators. + * @example + * Overview + */ +export const Navigation = styled.nav` + display: flex; + flex-wrap: wrap; + gap: 4px 16px; + padding-top: 8px; + + a { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 10px 0; + border-bottom: 2px solid transparent; + font-family: ${constants.fontFamilyFuturistic}; + font-size: ${constants.fontSizeSmall}; + color: ${constants.textColorSecondary}; + svg { width: 16px; height: 16px; } + } + + a:hover, a[aria-current="page"] { + color: ${constants.primaryLinkColor}; + border-bottom-color: ${constants.primaryLinkColor}; + text-decoration: none; + } + + a:focus-visible { outline: 2px solid ${constants.primaryLinkColor}; outline-offset: 3px; } + a[href="/esports/tournaments"] svg { color: ${constants.colorGolden}; } + a[href="/teams"] svg { color: ${constants.colorGreen}; } + a[href="/esports/players"] svg { color: ${constants.colorBlue}; } +`; + +/** + * Arranges overview panels in two columns, stacking them on smaller screens. + * @example + * {teams}{heroes} + */ +export const Grid = styled.div` + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); + gap: 16px; + align-items: start; + @media (max-width: ${constants.wrapTablet}) { + grid-template-columns: minmax(0, 1fr); + gap: 0; + } +`; + +/** + * Groups an Esports section in a themed, responsive surface. + * @example + * {seriesTable} + */ +export const Panel = styled.section` + min-width: 0; + padding: 16px; + margin-bottom: 16px; + border: 1px solid ${constants.dividerColor}; + border-radius: 3px; + background: ${constants.primarySurfaceColor}; + @media (max-width: ${constants.wrapMobile}) { padding: 12px; } +`; + +/** + * Aligns a section heading with its optional navigation action. + * @example + *

Tournaments

View all
+ */ +export const PanelHeader = styled.div` + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + gap: 8px; + margin-bottom: 12px; + a { + font-family: ${constants.fontFamilyFuturistic}; + font-size: ${constants.fontSizeSmall}; + color: ${constants.primaryLinkColor}; + } +`; + +/** + * Lays out tournament cards in a responsive grid. + * @example + * {tournamentCards} + */ +export const Cards = styled.div` + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); + gap: 12px; +`; + +/** + * Links to tournament details with a highlighted edge and compact identity. + * @example + * The International 2026 + */ +export const TournamentCard = styled(Link)` + display: block; + padding: 14px; + border: 1px solid ${constants.dividerColor}; + border-left: 3px solid ${constants.colorGolden}; + border-radius: 3px; + background: rgba(100, 160, 210, 0.08); + color: ${constants.textColorPrimary}; + transition: border-color 150ms ease; + + &:hover { + border-color: ${constants.colorGolden}; + color: ${constants.textColorPrimary}; + text-decoration: none; + } + &:focus-visible { outline: 2px solid ${constants.primaryLinkColor}; outline-offset: 3px; } + > svg { width: 20px; height: 20px; color: ${constants.colorGolden}; } + strong { + display: block; + margin: 8px 0; + font-family: ${constants.fontFamilyFuturistic}; + font-size: ${constants.fontSizeMedium}; + font-weight: ${constants.fontWeightNormal}; + line-height: 1.5; + overflow-wrap: anywhere; + } + small { + display: block; + font-size: ${constants.fontSizeSmall}; + color: ${constants.textColorSecondary}; + margin-top: 10px; + } +`; + +/** + * Displays a compact tier badge. + * @param props.$premium Whether the default accent should indicate a premium tier. + * @example + * Premium + */ +export const TierBadge = styled.span<{ $premium: boolean }>` + display: inline-flex; + align-items: center; + gap: 4px; + padding: 2px 6px; + border: 1px solid ${constants.dividerColor}; + border-radius: 3px; + font-family: ${constants.fontFamilyFuturistic}; + font-size: ${constants.fontSizeSmall}; + color: ${({ $premium }) => $premium ? constants.colorGolden : constants.colorBlue}; + svg { width: 12px; height: 12px; } +`; + +/** + * Highlights a numeric statistic with a semantic accent. + * @param props.$positive Whether to use the positive-value accent. + * @example + * 65% + */ +export const Metric = styled.span<{ $positive?: boolean }>` + color: ${({ $positive }) => $positive ? constants.colorGreen : constants.colorBlue}; + font-variant-numeric: tabular-nums; +`; + +/** + * Aligns a team, hero, or player image with its display name. + * @example + * Chandogs + */ +export const Identity = styled.div` + display: flex; + align-items: center; + gap: 8px; + img { width: 28px; height: 28px; object-fit: contain; flex-shrink: 0; } + > svg { width: 24px; height: 24px; color: ${constants.colorGreen}; flex-shrink: 0; } +`; + +/** + * Displays compact counts for tournament series, matches, and teams. + * @example + *
12Series
+ */ +export const Summary = styled.div` + display: flex; + flex-wrap: wrap; + gap: 12px; + > div { + display: flex; + align-items: center; + gap: 8px; + padding: 10px 14px; + border: 1px solid ${constants.dividerColor}; + border-radius: 3px; + } + svg { width: 18px; height: 18px; color: ${constants.colorBlue}; } + strong { color: ${constants.colorGolden}; font-size: ${constants.fontSizeCommon}; } + span { color: ${constants.textColorSecondary}; } +`; + +/** + * Places the page heading over a responsive arena photograph and dark overlay. + * @example + * + */ +export const PhotoBanner = styled.div` + position: relative; + margin-top: 16px; + overflow: hidden; + border: 1px solid ${constants.dividerColor}; + border-radius: 4px; + background-color: ${constants.almostBlack}; + background-image: linear-gradient(90deg, rgba(5, 10, 20, .9), rgba(5, 10, 20, .25)), url("/assets/images/esports-arena.jpg"); + background-size: cover; + background-position: center 46%; + + .top-heading { + position: relative; + width: auto; + min-height: 240px; + margin: 0; + left: auto; + right: auto; + padding: 32px 28px; + justify-content: center; + background: transparent; + box-sizing: border-box; + } + .title { color: #fff; } + .subtitle { max-width: 560px; margin: 10px 0 0; color: #e2e6ed; line-height: 1.7; } + @media (max-width: ${constants.wrapMobile}) { + .top-heading { min-height: 200px; padding: 24px 16px 40px; } + } +`; diff --git a/src/components/Esports/TournamentDetails.tsx b/src/components/Esports/TournamentDetails.tsx new file mode 100644 index 0000000000..4d43b2f55b --- /dev/null +++ b/src/components/Esports/TournamentDetails.tsx @@ -0,0 +1,154 @@ +/** + * @file TournamentDetails.tsx + * @description Displays tournament identity, available artwork, tier, recorded match dates, and participating teams. + * @remarks Recorded match dates describe available history rather than the official tournament schedule. + */ + +import React, { useState } from "react"; +import styled from "styled-components"; +import EmojiEventsIcon from "@mui/icons-material/EmojiEvents"; +import CalendarMonthIcon from "@mui/icons-material/CalendarMonth"; +import useStrings from "../../hooks/useStrings.hook"; +import constants from "../constants"; +import TeamLogo from "../TeamLogo/TeamLogo"; +import { Link } from "react-router-dom"; +import { ProfessionalMatch } from "../Matches/series"; + +/** + * Arranges tournament artwork and metadata in a responsive identity panel. + * @example + *
{artwork}
{metadata}
+ */ +const Details = styled.div` + display: grid; + grid-template-columns: 180px minmax(0, 1fr); + gap: 20px; + margin-bottom: 20px; + .tournament-art { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 12px; + min-height: 140px; + border: 1px solid ${constants.dividerColor}; + border-radius: 4px; + background: ${constants.secondarySurfaceColor}; + color: ${constants.textColorSecondary}; + text-align: center; + img { width: 100%; max-height: 180px; object-fit: contain; } + svg { width: 48px; height: 48px; color: ${constants.colorGolden}; } + } + h2 { margin-bottom: 12px; } + dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 16px; margin: 12px 0; } + dt { color: ${constants.textColorSecondary}; } + dd { margin: 0; overflow-wrap: anywhere; } + dd svg { width: 14px; height: 14px; vertical-align: middle; margin-right: 6px; color: ${constants.colorBlue}; } + @media (max-width: ${constants.wrapMobile}) { grid-template-columns: minmax(0, 1fr); } +`; + +/** + * Displays wrapping team profile links with logos. + * @example + * {teamProfileLinks} + */ +const Participants = styled.div` + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-bottom: 20px; + a { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid ${constants.dividerColor}; border-radius: 3px; } + img, svg { width: 24px; height: 24px; object-fit: contain; } +`; + +type Tournament = { leagueid: number; name: string; banner?: string | null; ticket?: string | null }; +type Team = { team_id: number; name: string; logo_url: string }; + +/** + * Tournament identity and match-history coverage shown in the details panel. + * @example + * const props: TournamentDetailsProps = { + * league: { leagueid: 19719, name: "The International 2026" }, + * tier: "Professional", games: [], teams: [], historyReady: false, + * }; + */ +export type TournamentDetailsProps = { + /** Tournament identity and optional artwork sources. */ + league: Tournament; + /** Localized text or badge representing the tournament tier. */ + tier: React.ReactNode; + /** Recorded matches used to derive dates and participants. */ + games: ProfessionalMatch[]; + /** Team metadata used to resolve participant names and logos. */ + teams: Team[]; + /** True after match history loads successfully. */ + historyReady: boolean; +}; + +/** + * Displays tournament identity and the coverage available in its recorded history. + * @param props Tournament metadata and match history. + * @param props.league Tournament name, ID, and optional artwork sources. + * @param props.tier Localized tier badge to display. + * @param props.games Match history used to derive dates and participating teams. + * @param props.teams Team metadata used to resolve names and logos. + * @param props.historyReady Whether match history has loaded successfully. + * @returns Tournament artwork, metadata, and available participant links. + * @example + * Professional} + * games={leagueMatches} + * teams={teams} + * historyReady={true} + * /> + */ +export default function TournamentDetails({ league, tier, games, teams, historyReady }: TournamentDetailsProps) { + const strings = useStrings(); + const [failedImage, setFailedImage] = useState(""); + // Historical banner values can be asset identifiers rather than public URLs. + const image = [league.banner, league.ticket].find((value) => value && /^https?:\/\//.test(value)) || ""; + const dates = games.map((game) => game.start_time); + /** + * Formats a recorded match timestamp in the viewer’s locale. + * @param value Unix timestamp in seconds. + * @returns A localized calendar date including the year. + * @example + * date(new Date(2026, 9, 21, 12).getTime() / 1000); + * // "Oct 21, 2026" in an en-US locale. + */ + const date = (value: number) => new Date(value * 1000).toLocaleDateString(undefined, { year: "numeric", month: "short", day: "numeric" }); + const participants = new Map(); + games.forEach((game) => { + for (const [id, name] of [[game.radiant_team_id, game.radiant_name], [game.dire_team_id, game.dire_name]] as const) { + if (!id || participants.has(id)) continue; + const team = teams.find((item) => item.team_id === id); + participants.set(id, { name: name || team?.name || strings.general_unknown, logo_url: team?.logo_url || "" }); + } + }); + + return ( + <> +
+
+ {image && failedImage !== image ? {league.name} setFailedImage(image)} /> : <>
+
+

{league.name}

+ {tier} +
+
{strings.th_league}
{league.leagueid}
+ {historyReady && dates.length > 0 && <> +
{strings.esports_first_recorded_match}
+
{strings.esports_last_recorded_match}
+ } +
+
+
+ {historyReady && participants.size > 0 && <> +

{strings.esports_participating_teams}

+ {Array.from(participants, ([id, team]) => {team.name})} + } + + ); +} diff --git a/src/components/Esports/groupSeriesByDate.ts b/src/components/Esports/groupSeriesByDate.ts new file mode 100644 index 0000000000..69ee7b14fa --- /dev/null +++ b/src/components/Esports/groupSeriesByDate.ts @@ -0,0 +1,42 @@ +/** + * @file groupSeriesByDate.ts + * @description Groups series chronologically by their first match’s local calendar date without mutating the input. + */ + +import { MatchSeries } from "../Matches/series"; + +/** + * Groups series by the local date of their earliest recorded game. + * @param series Series to group; input order and contents are preserved. + * @returns Date groups ordered oldest first, with series ordered by start time within each day. + * @example + * // Other MatchSeries fields are omitted here for readability. + * // Date constructors use local time, matching the grouping behavior. + * const input = [ + * { key: "19719:3", first_match_time: new Date(2026, 9, 21, 10).getTime() / 1000 }, + * { key: "19719:1", first_match_time: new Date(2026, 9, 20, 9).getTime() / 1000 }, + * { key: "19719:2", first_match_time: new Date(2026, 9, 20, 15).getTime() / 1000 }, + * ]; + * groupSeriesByDate(input); + * // Returns: + * // [ + * // { date: "2026-10-20", series: [input[1], input[2]] }, + * // { date: "2026-10-21", series: [input[0]] }, + * // ] + * // Each series retains all its original fields; input is not reordered. + * + * @example + * groupSeriesByDate([]); + * // Returns: [] + */ +export const groupSeriesByDate = (series: MatchSeries[]) => { + const days = new Map(); + [...series].sort((a, b) => a.first_match_time - b.first_match_time).forEach((row) => { + const start = new Date(row.first_match_time * 1000); + const date = `${start.getFullYear()}-${String(start.getMonth() + 1).padStart(2, "0")}-${String(start.getDate()).padStart(2, "0")}`; + const rows = days.get(date) || []; + rows.push(row); + days.set(date, rows); + }); + return Array.from(days, ([date, rows]) => ({ date, series: rows })); +}; diff --git a/src/components/Esports/useEsportsData.ts b/src/components/Esports/useEsportsData.ts new file mode 100644 index 0000000000..693460840e --- /dev/null +++ b/src/components/Esports/useEsportsData.ts @@ -0,0 +1,60 @@ +/** + * @file useEsportsData.ts + * @description Loads list responses from OpenDota with independent loading, error, cancellation, and retry state. + * @remarks A null path disables fetching. Obsolete responses are discarded when the path changes or the component unmounts. + */ + +import { useEffect, useState } from "react"; +import config from "../../config"; + +/** + * Fetches an OpenDota list and manages request cancellation and manual retries. + * @template T The element type expected in the API response. + * @param path API-relative path, such as leagues; null disables the request. + * @returns The current data, loading/error flags, and a retry callback. + * @example + * const { data, loading, error, retry } = useEsportsData("leagues"); + * // Inside a component: data becomes the league array after a successful request. + * const history = useEsportsData(leagueId ? `leagues/${leagueId}/matches` : null); + * // No history request is made when leagueId is absent. + */ +export default function useEsportsData(path: string | null) { + const [state, setState] = useState<{ + path: string | null; + data: T[]; + loading: boolean; + error: boolean; + }>({ path, data: [], loading: !!path, error: false }); + const [attempt, setAttempt] = useState(0); + + useEffect(() => { + if (!path) return; + const controller = new AbortController(); + setState({ path, data: [], loading: true, error: false }); + fetch(`${config.VITE_API_HOST}/api/${path}`, { + credentials: "include", + signal: controller.signal, + }) + .then((response) => { + if (!response.ok) throw new Error(String(response.status)); + return response.json(); + }) + .then((data) => { + if (!Array.isArray(data)) throw new Error("Expected a list"); + if (!controller.signal.aborted) { + setState({ path, data, loading: false, error: false }); + } + }) + .catch(() => { + if (!controller.signal.aborted) { + setState({ path, data: [], loading: false, error: true }); + } + }); + return () => controller.abort(); + }, [path, attempt]); + + return { + ...(state.path === path ? state : { data: [], loading: !!path, error: false }), + retry: () => setAttempt((value) => value + 1), + }; +} diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index 12967f7949..7fa453f5c4 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -285,6 +285,7 @@ const Header = ({ to: "/request", label: strings.header_request, }, + { key: "esports", to: "/esports", label: strings.esports_title }, { key: "header_matches", to: "/matches", diff --git a/src/components/Matches/Matches.tsx b/src/components/Matches/Matches.tsx index 107cb554ae..fd879b16c5 100644 --- a/src/components/Matches/Matches.tsx +++ b/src/components/Matches/Matches.tsx @@ -4,10 +4,9 @@ import Helmet from "react-helmet"; import { heroes } from "dotaconstants"; import styled from "styled-components"; import { transformations, subTextStyle, rankTierToString } from "../../utility"; -import { getProMatches, getPublicMatches } from "../../actions"; +import { getProMatches, getPublicMatches, getTeams } from "../../actions"; import Table from "../Table/Table"; import TableLink from "../Table/TableLink"; -// import Heading from '../Heading'; import { IconTrophy } from "../Icons"; import Match from "../Match/Match"; import TabBar from "../TabBar/TabBar"; @@ -15,7 +14,9 @@ import { StyledTeamIconContainer } from "../Match/StyledMatch"; import constants from "../constants"; import FromNowTooltip from "../Visualizations/FromNowTooltip"; import HeroImage from "../Visualizations/HeroImage"; +import TeamLogo from "../TeamLogo/TeamLogo"; import Heading from "../Heading/Heading"; +import { groupMatchesBySeries, MatchSeries } from "./series"; export const WinnerSpan = styled.span` display: inline-block; @@ -28,7 +29,29 @@ export const WinnerSpan = styled.span` } `; -const matchesColumns = (strings: Strings) => [ +/** + * Displays a muted best-of format label. + * @param props.$type Series type code: 0 for BO1, 1 for BO3, or 2 for BO5. + * @example + * BO3 + */ +const SeriesFormatBadge = styled.span<{ $type: number }>` + display: inline-flex; + align-items: center; + padding: 2px 6px; + border: 1px solid ${constants.dividerColor}; + border-radius: 4px; + background: transparent; + color: ${constants.textColorSecondary}; + font-family: ${constants.fontFamilyFuturistic}; + font-size: ${constants.fontSizeSmall}; + font-weight: 400; + letter-spacing: 0.01em; + line-height: 1.4; + white-space: nowrap; +`; + +export const matchesColumns = (strings: Strings) => [ { field: "version", displayFn: (row: any, col: any, field: any) => ( @@ -97,6 +120,107 @@ const matchesColumns = (strings: Strings) => [ }, ]; +export type SeriesTeam = { team_id: number; logo_url: string }; + +/** + * Renders a series participant with its logo and optional team profile link. + * @param id Team identifier when available. + * @param name Team name, or null for the unknown label. + * @param teams Team metadata used for logo lookup. + * @param strings Localized interface strings. + * @returns The participant identity and logo. + * @example + * seriesTeam(8965331, "Chandogs", teams, strings); + */ +const seriesTeam = (id: number | null | undefined, name: string | null, teams: SeriesTeam[], strings: Strings) => { + const src = teams.find((team) => team.team_id === id)?.logo_url || ""; + const label = name || strings.general_unknown; + return ( +
+ + {id ? {label} : label} +
+ ); +}; + +/** + * Builds the shared columns for grouped professional series tables. + * @param strings Localized column labels and fallback messages. + * @param teams Team records used to resolve logos. + * @param seriesLink Optional function returning each series or league detail URL. + * @param leagueIcon Optional renderer for artwork beside the league name. + * @returns Table column definitions for league, format, teams, score, and game links. + * @example + * const columns = seriesColumns(strings, teams, (row) => `/esports/leagues/${row.leagueid}`); + *
+ */ +export const seriesColumns = ( + strings: Strings, + teams: SeriesTeam[], + seriesLink = (row: MatchSeries) => `/matches/series/${row.key}`, + leagueIcon?: (row: MatchSeries) => React.ReactNode, +) => [ + { + displayName: strings.th_league, + field: "league_name", + displayFn: (row: MatchSeries) => ( +
+ {leagueIcon?.(row)} +
+ + {row.league_name} + +
+ +
+
+
+ ), + }, + { + displayName: strings.esports_format, + field: "series_type", + displayFn: (row: MatchSeries) => { + const type = row.series_type; + return typeof type === "number" && Number.isInteger(type) && type >= 0 && type <= 2 + ? BO{type * 2 + 1} + : strings.general_unknown; + }, + }, + { + displayName: strings.th_team_name, + field: "team1", + displayFn: (row: MatchSeries) => seriesTeam(row.team1Id, row.team1, teams, strings), + }, + { + displayName: strings.th_score, + field: "score", + displayFn: (row: MatchSeries) => ( + + {row.team1Wins} – {row.team2Wins} + + ), + }, + { + displayName: strings.th_team_name, + field: "team2", + displayFn: (row: MatchSeries) => seriesTeam(row.team2Id, row.team2, teams, strings), + }, + { + displayName: strings.th_matches, + field: "games", + displayFn: (row: MatchSeries) => ( +
+ {row.games.map((game, index) => ( + + {strings.matches_game} {index + 1} · {game.match_id} + + ))} +
+ ), + }, +]; + const publicMatchesColumns = (strings: Strings) => [ { displayName: strings.th_match_id, @@ -176,6 +300,20 @@ const matchTabs = (strings: Strings) => [ ), route: "/matches/pro", }, + { + name: strings.matches_series, + key: "series", + content: (propsPar: MatchesProps) => ( +
row.key} + loading={propsPar.loading} + loadingText="Loading professional series..." + /> + ), + route: "/matches/series", + }, { name: strings.matches_highest_mmr, key: "highMmr", @@ -196,6 +334,7 @@ const matchTabs = (strings: Strings) => [ const getData = (props: MatchesProps) => { const route = props.match.params.matchId || "pro"; if (!Number.isInteger(Number(route))) { + if (route === "series") props.dispatchTeams(); props.dispatchProMatches(); props.dispatchPublicMatches({ min_rank: 75 }); } @@ -205,6 +344,8 @@ type MatchesProps = { match: { params: { matchId: string; info?: string } }; strings: Strings; dispatchProMatches: Function; + dispatchTeams: Function; + teams: SeriesTeam[]; dispatchPublicMatches: Function; proData: any[]; publicData: any[]; @@ -229,12 +370,52 @@ class Matches extends React.Component { return ; } + if (route === "series" && this.props.match.params.info) { + const series = groupMatchesBySeries(this.props.proData).find( + (row) => row.key === this.props.match.params.info, + ); + return ( +
+ + {strings.matches_series} + + {strings.th_league}: {series.leagueid} + {!!series.series_id && ` / ${strings.matches_series}: ${series.series_id}`} + + )} + className="top-heading" + /> +
+ {series && ( + <> + +

{strings.matches_series_available_games}

+
game.match_id} + /> + + )} + + ); + } + const tab = matchTabs(strings).find((_tab) => _tab.key === route); return (
- + item.key !== "series")} /> {tab && tab.content(this.props)}
); @@ -243,12 +424,14 @@ class Matches extends React.Component { const mapStateToProps = (state: any) => ({ proData: state.app.proMatches.data, + teams: state.app.teams.data, publicData: state.app.publicMatches.data, loading: state.app.proMatches.loading, strings: state.app.strings, }); const mapDispatchToProps = (dispatch: any) => ({ + dispatchTeams: () => dispatch(getTeams()), dispatchProMatches: () => dispatch(getProMatches()), dispatchPublicMatches: (options: any) => dispatch(getPublicMatches(options)), }); diff --git a/src/components/Matches/series.ts b/src/components/Matches/series.ts new file mode 100644 index 0000000000..f7178c5250 --- /dev/null +++ b/src/components/Matches/series.ts @@ -0,0 +1,87 @@ +/** + * @file series.ts + * @description Defines professional match types and groups league matches into chronologically ordered series. + * @remarks Scores follow team identity across Radiant/Dire swaps. Matches without a series ID remain separate. + */ + +export type ProfessionalMatch = { + match_id: number; + series_id?: number | null; + series_type?: number | null; + leagueid: number; + league_name: string; + start_time: number; + duration: number; + radiant_team_id?: number | null; + dire_team_id?: number | null; + radiant_name: string | null; + dire_name: string | null; + radiant_win: boolean | null; +}; + +/** + * Groups matches by league and series ID and calculates scores across side swaps. + * @param matches Available professional match records; matches lacking a valid series ID remain separate. + * @returns Series ordered by latest game end time, with games ordered chronologically. + * @example + * const series = groupMatchesBySeries([game1, game2]); + * // If both games share leagueid and series_id, returns one series with + * // games: [game1, game2] ordered by start time, and wins credited by team ID. + * groupMatchesBySeries([]); // [] + */ +export const groupMatchesBySeries = (matches: ProfessionalMatch[]) => { + const groups = new Map(); + matches.forEach((match) => { + const key = match.series_id && match.series_id > 0 + ? `${match.leagueid}:${match.series_id}` + : `match:${match.match_id}`; + const group = groups.get(key) || []; + group.push(match); + groups.set(key, group); + }); + + return Array.from(groups, ([key, games]) => { + const orderedGames = [...games].sort((a, b) => a.start_time - b.start_time || a.match_id - b.match_id); + const first = orderedGames[0]; + /** + * Builds a side-independent team identifier for score attribution. + * @param id Team ID when available. + * @param name Fallback team name when no ID is provided. + * @returns A team identifier prefixed by its source. + * @example + * teamKey(8965331, "Chandogs"); // "id:8965331" + * teamKey(null, "Chandogs"); // "name:Chandogs" + */ + const teamKey = (id: number | null | undefined, name: string | null) => + id ? `id:${id}` : `name:${name}`; + const team1Key = teamKey(first.radiant_team_id, first.radiant_name); + let team1Wins = 0; + let team2Wins = 0; + orderedGames.forEach((game) => { + if (typeof game.radiant_win !== "boolean") return; + const winner = game.radiant_win + ? teamKey(game.radiant_team_id, game.radiant_name) + : teamKey(game.dire_team_id, game.dire_name); + if (winner === team1Key) team1Wins += 1; + else team2Wins += 1; + }); + return { + key, + leagueid: first.leagueid, + series_id: first.series_id, + series_type: first.series_type, + first_match_time: first.start_time, + league_name: first.league_name, + start_time: Math.max(...games.map((game) => game.start_time + game.duration)), + team1Id: first.radiant_team_id, + team2Id: first.dire_team_id, + team1: first.radiant_name, + team2: first.dire_name, + team1Wins, + team2Wins, + games: orderedGames, + }; + }).sort((a, b) => b.start_time - a.start_time); +}; + +export type MatchSeries = ReturnType[number]; diff --git a/src/components/TeamLogo/TeamLogo.tsx b/src/components/TeamLogo/TeamLogo.tsx new file mode 100644 index 0000000000..45168c1514 --- /dev/null +++ b/src/components/TeamLogo/TeamLogo.tsx @@ -0,0 +1,99 @@ +/** + * @file TeamLogo.tsx + * @description Displays team logos with cached team-detail lookups and a generic icon fallback. + * @remarks Team details are requested only when the supplied logo is missing or fails to load. + */ + +import React, { useEffect, useState } from "react"; +import GroupsIcon from "@mui/icons-material/Groups"; +import config from "../../config"; +import { getTeamLogoUrl } from "../../utility"; + +// Reuse the detail lookup when a team appears in several series on the page. +const logoRequests = new Map>(); + +/** + * Looks up a team-detail logo, sharing cached requests for the same team. + * @param teamId OpenDota team ID. + * @returns A promise resolving to a logo URL, or an empty string when unavailable. + * @example + * const url = await getLogo(8965331); + * // Resolves to the team detail logo URL, or "" if unavailable. + */ +const getLogo = (teamId: number) => { + let request = logoRequests.get(teamId); + if (!request) { + request = fetch(`${config.VITE_API_HOST}/api/teams/${teamId}`, { + credentials: "include", + }) + .then((response) => { + if (!response.ok) throw new Error(String(response.status)); + return response.json(); + }) + .then((team) => getTeamLogoUrl(team.logo_url || "")) + .catch(() => { + logoRequests.delete(teamId); + return ""; + }); + logoRequests.set(teamId, request); + } + return request; +}; + +/** + * Team logo sources and presentation options. + * @example + * const props: TeamLogoProps = { teamId: 8965331, style: { width: 32, height: 32 } }; + */ +export type TeamLogoProps = { + /** Optional team ID used for fallback artwork lookup. */ + teamId?: number | null; + /** Optional logo URL from the team list; defaults to an empty string. */ + src?: string; + /** Inline image and fallback-icon layout styles. */ + style?: React.CSSProperties; +}; + +/** + * Displays a supplied logo, falls back to team details, then to a generic team icon. + * @param props Logo identity and presentation options. + * @param props.teamId Optional team ID for the fallback detail request. + * @param props.src Optional logo URL from the team list. + * @param props.style Inline size and layout styles applied to the image or fallback icon. + * @returns A decorative logo image or team icon. + * @example + * + * // Looks up the logo when src is omitted; shows a generic icon if unavailable. + */ +const TeamLogo = ({ + teamId, + src = "", + style, +}: TeamLogoProps) => { + const [detail, setDetail] = useState({ teamId, src: "" }); + const [failedSrc, setFailedSrc] = useState(""); + const listSrc = getTeamLogoUrl(src); + const needsDetail = !listSrc || failedSrc === listSrc; + const logo = needsDetail ? (detail.teamId === teamId ? detail.src : "") : listSrc; + + useEffect(() => { + if (!teamId || !needsDetail) return; + let active = true; + getLogo(teamId).then((url) => { + if (active) setDetail({ teamId, src: url }); + }); + return () => { active = false; }; + }, [teamId, needsDetail]); + + return logo && logo !== failedSrc ? ( + setFailedSrc(logo)} + style={style} + /> + ) :