diff --git a/src/services/standingsService.ts b/src/services/standingsService.ts index 11382f4..a0b6335 100644 --- a/src/services/standingsService.ts +++ b/src/services/standingsService.ts @@ -37,6 +37,7 @@ export interface TeamStanding { season: number teamName: string teamAbbreviation: string + divisionName: string divisionAbbreviation: string leagueAbbreviation: string wins: number @@ -96,6 +97,7 @@ function normalizeStanding(standing: TeamStandingRaw): TeamStanding { season: standing.team.season, teamName: standing.team.sname, teamAbbreviation: standing.team.abbrev, + divisionName: standing.team.division.division_name, divisionAbbreviation: standing.team.division.division_abbrev, leagueAbbreviation: standing.team.division.league_abbrev, wins: standing.wins, diff --git a/src/services/utilities.ts b/src/services/utilities.ts index b7217f1..2c935df 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -4,7 +4,7 @@ dayjs.extend(customParseFormat) export const SITE_URL = 'https://sba.manticorum.com' -export const CURRENT_SEASON = 8 +export const CURRENT_SEASON = 9 export const MODERN_STAT_ERA_START = 8 @@ -15,9 +15,9 @@ export const WEEKS_PER_SEASON = 18 export const GAMES_PER_SEASON = GAMES_PER_WEEK * WEEKS_PER_SEASON // TODO: Annually update this start date and holidays with two week series or get it from the DB -export const SEASON_START_DATE: dayjs.Dayjs = dayjs('07-31-2023', 'MM/DD/YYYY') -export const THANKSGIVING: dayjs.Dayjs = dayjs('11-23-2023', 'MM/DD/YYYY') -export const CHRISTMAS: dayjs.Dayjs = dayjs('12-25-2023', 'MM/DD/YYYY') +export const SEASON_START_DATE: dayjs.Dayjs = dayjs('01-15-2024', 'MM/DD/YYYY') +export const THANKSGIVING: dayjs.Dayjs = dayjs('11-28-2024', 'MM/DD/YYYY') +export const CHRISTMAS: dayjs.Dayjs = dayjs('12-25-2024', 'MM/DD/YYYY') export const POS_MAP = { diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index 5b6eacc..cd849e1 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -16,14 +16,12 @@

SBa League

-

International wOBA Grand Prix

- -

Crabbers

- -

Fun Diff

- -

NL West

- +

Wildcard

@@ -60,11 +58,8 @@ export default { seasonNumber: CURRENT_SEASON as number, weekNumber: undefined as number | undefined, teamStandings: [] as TeamStanding[], - iwgpTeams: [] as TeamStanding[], - nlwTeams: [] as TeamStanding[], wildcardTeams: [] as TeamStanding[], - balTeams: [] as TeamStanding[], - fdTeams: [] as TeamStanding[], + standingsByDivision: [[]] as TeamStanding[][], newsPosts: [] as NewsPost[] } }, @@ -77,15 +72,18 @@ export default { this.weekNumber = leagueInfo.week this.teamStandings = await fetchStandings(CURRENT_SEASON) - // TODO this could be made more robust to division/league structure changes by identifying the unique - // league/div abbreviations, then grouping on each into an array of arrays, then in the template above - // v-for over the structure to generate a dynamic standings page - this.iwgpTeams = this.teamStandings.filter(ts => ts.divisionAbbreviation === 'IWGP') - this.nlwTeams = this.teamStandings.filter(ts => ts.divisionAbbreviation === 'NLW') - this.balTeams = this.teamStandings.filter(ts => ts.divisionAbbreviation === 'BAL') - this.fdTeams = this.teamStandings.filter(ts => ts.divisionAbbreviation === 'FD') this.wildcardTeams = this.teamStandings.filter(ts => ts.isWildcardTeam) + const teamStandingsByDivisionAbbreviation: { [key: string]: TeamStanding[] } = {} + this.teamStandings.forEach(ts => { + if (!teamStandingsByDivisionAbbreviation[ts.divisionAbbreviation]) { + teamStandingsByDivisionAbbreviation[ts.divisionAbbreviation] = [] + } + teamStandingsByDivisionAbbreviation[ts.divisionAbbreviation].push(ts) + }) + + this.standingsByDivision = Object.values(teamStandingsByDivisionAbbreviation) + this.newsPosts = await getPosts() }, diff --git a/src/views/LeaderboardView.vue b/src/views/LeaderboardView.vue index 0cbffb4..8d55e8f 100644 --- a/src/views/LeaderboardView.vue +++ b/src/views/LeaderboardView.vue @@ -7,9 +7,9 @@

{{ statType }} Leaderboards - Min {{ statMinimum }}

- +