Sort player names for search, mark news as coming soon
This commit is contained in:
parent
4bb6aa443c
commit
2211cfde2e
@ -183,10 +183,10 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<form class="form-inline" action="/players">
|
<form class="form-inline" @submit.stop.prevent="searchPlayers">
|
||||||
<input type="text" name="name" placeholder="Player Search" list="player-names" id="player-choice">
|
<input type="text" name="name" placeholder="Player Search" list="player-names" v-model="searchPlayerName">
|
||||||
<datalist id="player-names">
|
<datalist id="player-names">
|
||||||
<option v-for="name in playerNames" :value="name">{{ name }}</option>
|
<option v-for="name in sortedPlayerNames" :value="name">{{ name }}</option>
|
||||||
</datalist>
|
</datalist>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
@ -225,7 +225,8 @@ export default {
|
|||||||
name: 'NavBar',
|
name: 'NavBar',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
playerNames: [] as string[],
|
players: [] as Player[],
|
||||||
|
searchPlayerName: undefined
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -421,6 +422,9 @@ export default {
|
|||||||
seasonNumber(): number {
|
seasonNumber(): number {
|
||||||
// TODO pull this from DB?
|
// TODO pull this from DB?
|
||||||
return CURRENT_SEASON
|
return CURRENT_SEASON
|
||||||
|
},
|
||||||
|
sortedPlayerNames(): string[] {
|
||||||
|
return this.players.sort((p1, p2) => p2.wara - p1.wara).map(p => p.name)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -428,8 +432,10 @@ export default {
|
|||||||
return await fetchPlayers(this.seasonNumber)
|
return await fetchPlayers(this.seasonNumber)
|
||||||
},
|
},
|
||||||
async populatePlayerNames(): Promise<void> {
|
async populatePlayerNames(): Promise<void> {
|
||||||
const players: Player[] = await this.getPlayers()
|
this.players = await this.getPlayers()
|
||||||
this.playerNames = players.sort(p => p.wara).map(p => p.name)
|
},
|
||||||
|
searchPlayers(): void {
|
||||||
|
this.$router.push({ path: `/players/${this.seasonNumber}/${this.searchPlayerName}` })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,7 +30,9 @@
|
|||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<h3>Latest News</h3>
|
<h3>Latest News</h3>
|
||||||
<div id="news-posts"></div>
|
<div id="news-posts">
|
||||||
|
🚧 Coming soon 🚧
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1238,6 +1238,14 @@ export default {
|
|||||||
created() {
|
created() {
|
||||||
this.fetchData()
|
this.fetchData()
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
seasonNumber(newValue, oldValue) {
|
||||||
|
if (newValue !== oldValue) this.fetchData()
|
||||||
|
},
|
||||||
|
playerName(newName, oldName) {
|
||||||
|
if (newName !== oldName) this.fetchData()
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async fetchData(): Promise<void> {
|
async fetchData(): Promise<void> {
|
||||||
this.player = await fetchPlayerByName(this.seasonNumber, this.playerName)
|
this.player = await fetchPlayerByName(this.seasonNumber, this.playerName)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user