Point all links on transactions to active rosters

This commit is contained in:
Peter 2024-11-16 09:51:00 -06:00
parent 8b94097b9d
commit 16ca772f01

View File

@ -3,7 +3,7 @@
<!-- Transaction Header --> <!-- Transaction Header -->
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<h1>Season {{seasonNumber}} Transactions</h1> <h1>Season {{ seasonNumber }} Transactions</h1>
</div> </div>
</div> </div>
<!-- Week Buttons --> <!-- Week Buttons -->
@ -41,17 +41,20 @@
<tr v-for="transaction in weekTransactions" :key="transaction.id"> <tr v-for="transaction in weekTransactions" :key="transaction.id">
<td>{{ selectedWeekNumber }}</td> <td>{{ selectedWeekNumber }}</td>
<td> <td>
<RouterLink :to="{ name: 'player', params: { seasonNumber: seasonNumber, playerName: transaction.player.name } }"> <RouterLink
:to="{ name: 'player', params: { seasonNumber: seasonNumber, playerName: transaction.player.name } }">
{{ transaction.player.name }} {{ transaction.player.name }}
</RouterLink> </RouterLink>
</td> </td>
<td> <td>
<RouterLink :to="{ name: 'team', params: { seasonNumber: seasonNumber, teamAbbreviation: transaction.oldteam.abbrev } }"> <RouterLink
:to="{ name: 'team', params: { seasonNumber: seasonNumber, teamAbbreviation: getMajorsAbbreviation(transaction.oldteam) } }">
{{ transaction.oldteam.sname }} {{ transaction.oldteam.sname }}
</RouterLink> </RouterLink>
</td> </td>
<td> <td>
<RouterLink :to="{ name: 'team', params: { seasonNumber: seasonNumber, teamAbbreviation: transaction.newteam.abbrev } }"> <RouterLink
:to="{ name: 'team', params: { seasonNumber: seasonNumber, teamAbbreviation: getMajorsAbbreviation(transaction.newteam) } }">
{{ transaction.newteam.sname }} {{ transaction.newteam.sname }}
</RouterLink> </RouterLink>
</td> </td>
@ -76,17 +79,20 @@
<tr v-for="transaction in nextWeekTransactions" :key="transaction.id"> <tr v-for="transaction in nextWeekTransactions" :key="transaction.id">
<td>{{ selectedWeekNumber + 1 }}</td> <td>{{ selectedWeekNumber + 1 }}</td>
<td> <td>
<RouterLink :to="{ name: 'player', params: { seasonNumber: seasonNumber, playerName: transaction.player.name } }"> <RouterLink
:to="{ name: 'player', params: { seasonNumber: seasonNumber, playerName: transaction.player.name } }">
{{ transaction.player.name }} {{ transaction.player.name }}
</RouterLink> </RouterLink>
</td> </td>
<td> <td>
<RouterLink :to="{ name: 'team', params: { seasonNumber: seasonNumber, teamAbbreviation: transaction.oldteam.abbrev } }"> <RouterLink
:to="{ name: 'team', params: { seasonNumber: seasonNumber, teamAbbreviation: getMajorsAbbreviation(transaction.oldteam) } }">
{{ transaction.oldteam.sname }} {{ transaction.oldteam.sname }}
</RouterLink> </RouterLink>
</td> </td>
<td> <td>
<RouterLink :to="{ name: 'team', params: { seasonNumber: seasonNumber, teamAbbreviation: transaction.newteam.abbrev } }"> <RouterLink
:to="{ name: 'team', params: { seasonNumber: seasonNumber, teamAbbreviation: getMajorsAbbreviation(transaction.newteam) } }">
{{ transaction.newteam.sname }} {{ transaction.newteam.sname }}
</RouterLink> </RouterLink>
</td> </td>
@ -100,6 +106,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { type Team } from '@/services/apiResponseTypes'
import { type LeagueInfo, fetchCurrentLeagueInfo } from '@/services/currentService' import { type LeagueInfo, fetchCurrentLeagueInfo } from '@/services/currentService'
import { fetchTransactionsByWeek, type Transaction } from '@/services/transactionsService' import { fetchTransactionsByWeek, type Transaction } from '@/services/transactionsService'
import { CURRENT_SEASON } from '@/services/utilities' import { CURRENT_SEASON } from '@/services/utilities'
@ -118,7 +125,6 @@ export default {
weekNumber: { type: Number, required: false } weekNumber: { type: Number, required: false }
}, },
created() { created() {
this.fetchCurrentWeekNumber()
this.fetchData() this.fetchData()
}, },
computed: { computed: {
@ -129,7 +135,7 @@ export default {
}, },
watch: { watch: {
seasonNumber(newValue, oldValue) { seasonNumber(newValue, oldValue) {
if (newValue !== oldValue){ if (newValue !== oldValue) {
this.weekTransactions = [] this.weekTransactions = []
this.nextWeekTransactions = [] this.nextWeekTransactions = []
this.fetchData() this.fetchData()
@ -149,8 +155,22 @@ export default {
this.currentWeekNumber = leagueInfo.week this.currentWeekNumber = leagueInfo.week
}, },
async fetchData(): Promise<void> { async fetchData(): Promise<void> {
await this.fetchCurrentWeekNumber()
this.weekTransactions = await fetchTransactionsByWeek(this.seasonNumber, this.selectedWeekNumber) this.weekTransactions = await fetchTransactionsByWeek(this.seasonNumber, this.selectedWeekNumber)
this.nextWeekTransactions = await fetchTransactionsByWeek(this.seasonNumber, this.selectedWeekNumber + 1) this.nextWeekTransactions = await fetchTransactionsByWeek(this.seasonNumber, this.selectedWeekNumber + 1)
},
getMajorsAbbreviation(team: Team): string {
const indexOfMiL = team.abbrev.indexOf('MiL')
const indexOfIL = team.abbrev.indexOf('IL')
if (indexOfMiL < 0 && indexOfIL < 0) return team.abbrev
if (indexOfMiL >= 0) return team.abbrev.slice(0, indexOfMiL)
if (indexOfIL >= 0) return team.abbrev.slice(0, indexOfIL)
console.warn('Should not have reached here with abbreviation pruning: ', team.abbrev, indexOfMiL, indexOfIL)
return team.abbrev
} }
} }
} }