diff --git a/src/views/StandingsView.vue b/src/views/StandingsView.vue index 26322df..0881cae 100644 --- a/src/views/StandingsView.vue +++ b/src/views/StandingsView.vue @@ -13,20 +13,13 @@ -
-
-

International wOBA Grand Prix

- -

Crabbers

- -
- -
-

Fun Diff

- -

NL West

- -
+
+

Wildcard

@@ -60,11 +53,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[][] } }, created() { @@ -76,14 +66,17 @@ 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) }, }