Sort player names for search, mark news as coming soon

This commit is contained in:
Peter 2023-08-09 18:15:24 -04:00
parent 4bb6aa443c
commit 2211cfde2e
3 changed files with 23 additions and 7 deletions

View File

@ -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}` })
} }
} }
} }

View File

@ -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>

View File

@ -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)