diff --git a/src/components/navigation/urlBar.vue b/src/components/navigation/urlBar.vue
index e6e9150..34ed08c 100644
--- a/src/components/navigation/urlBar.vue
+++ b/src/components/navigation/urlBar.vue
@@ -6,7 +6,8 @@ const router = useRouter()
const path = ref("https://www.eventmaster.com" + router.currentRoute.value.fullPath)
function navigate() {
- router.replace({ path: path.value.substring(path.value.indexOf('.com') + 4) })
+ let newPath = path.value.substring(path.value.indexOf('.com') + 4)
+ router.push(newPath)
}
watch(() => router.currentRoute.value.fullPath, () => {
diff --git a/src/pages/bands/bandsPage/bandFilterbar.vue b/src/pages/bands/bandsPage/bandFilterbar.vue
index e55487c..5abf65e 100644
--- a/src/pages/bands/bandsPage/bandFilterbar.vue
+++ b/src/pages/bands/bandsPage/bandFilterbar.vue
@@ -1,12 +1,12 @@
@@ -25,21 +28,19 @@ function itemProps(item: GenreModel) {
{{ $t('misc.actions.filtering') }}
diff --git a/src/pages/bands/bandsPage/index.vue b/src/pages/bands/bandsPage/index.vue
index 0781456..c74f2c7 100644
--- a/src/pages/bands/bandsPage/index.vue
+++ b/src/pages/bands/bandsPage/index.vue
@@ -3,10 +3,18 @@ import { useBandStore } from '@/stores/band.store';
import cardViewHorizontal from '@/components/basics/cardViewHorizontal.vue';
import bandListItem from '@/components/pageParts/bandListItem.vue';
import bandFilterbar from './bandFilterbar.vue';
+import { watch } from 'vue';
+import { useRouter } from 'vue-router';
const bandStore = useBandStore()
+const router = useRouter()
bandStore.getBands()
+
+// Refetch bands if query parameter changes
+watch(() => router.currentRoute.value.query, () => {
+ bandStore.getBands()
+})
diff --git a/src/stores/band.store.ts b/src/stores/band.store.ts
index 3ae9055..60449a9 100644
--- a/src/stores/band.store.ts
+++ b/src/stores/band.store.ts
@@ -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
diff --git a/src/stores/genre.store.ts b/src/stores/genre.store.ts
index a189470..3d306a2 100644
--- a/src/stores/genre.store.ts
+++ b/src/stores/genre.store.ts
@@ -10,11 +10,8 @@ export const useGenreStore = defineStore("genreStore", {
/** All available genres from server */
genres: ref>([]),
- /** Currently edited genre */
- genre: ref(new GenreApiModel()),
-
- /** Genres to filter bands for */
- filteredGenres: ref>([]),
+ /** Currently selected genre */
+ genre: ref(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
+ }
}
}
})
\ No newline at end of file