Exercise 3.1 fully implemented

This commit is contained in:
2024-11-20 12:27:41 +01:00
parent 9d41a14926
commit 366f1060e3
5 changed files with 34 additions and 16 deletions

View File

@@ -33,16 +33,14 @@ export const useBandStore = defineStore("bandStore", {
await fetchAllBands()
.then(result => {
this.bands = result.data.filter((band: BandApiModel) => {
if (genreStore.filteredGenres.length == 0) {
if (genreStore.genre == null) {
return true
}
for (let bandGenre of band.genres) {
for (let filteredGenres of genreStore.filteredGenres) {
if (bandGenre.name == filteredGenres.name) {
if (bandGenre.name == genreStore.genre.name) {
return true
}
}
}
return false

View File

@@ -10,11 +10,8 @@ export const useGenreStore = defineStore("genreStore", {
/** All available genres from server */
genres: ref<Array<GenreApiModel>>([]),
/** Currently edited genre */
genre: ref<GenreApiModel>(new GenreApiModel()),
/** Genres to filter bands for */
filteredGenres: ref<Array<GenreApiModel>>([]),
/** Currently selected genre */
genre: ref<GenreApiModel>(null),
/** Show or hide edit dialog for Genre object */
showEditDialog: ref(false),
@@ -107,6 +104,19 @@ export const useGenreStore = defineStore("genreStore", {
feedbackStore.addSnackbar(BannerStateEnum.GENREDELETEERROR)
}
})
},
setGenreByName(name: string) {
this.genre = null
name = name.replace("+", " ")
let newGenre = this.genres.find(genre => {
return genre.name == name
})
if (newGenre != undefined) {
this.genre = newGenre
}
}
}
})