Преглед изворни кода

feat(ManageStation): showTab() should scroll to that tab in the selector (esp. on mobile)

Signed-off-by: Jonathan <theflametrooper@gmail.com>
Jonathan пре 3 година
родитељ
комит
3ce685294c
1 измењених фајлова са 10 додато и 1 уклоњено
  1. 10 1
      frontend/src/components/modals/ManageStation/index.vue

+ 10 - 1
frontend/src/components/modals/ManageStation/index.vue

@@ -18,6 +18,7 @@
 								v-if="isOwnerOrAdmin()"
 								class="button is-default"
 								:class="{ selected: tab === 'settings' }"
+								ref="settings-tab"
 								@click="showTab('settings')"
 							>
 								Settings
@@ -34,6 +35,7 @@
 								"
 								class="button is-default"
 								:class="{ selected: tab === 'playlists' }"
+								ref="playlists-tab"
 								@click="showTab('playlists')"
 							>
 								Playlists
@@ -48,6 +50,7 @@
 								"
 								class="button is-default"
 								:class="{ selected: tab === 'search' }"
+								ref="search-tab"
 								@click="showTab('search')"
 							>
 								Search
@@ -56,6 +59,7 @@
 								v-if="isOwnerOrAdmin()"
 								class="button is-default"
 								:class="{ selected: tab === 'blacklist' }"
+								ref="blacklist-tab"
 								@click="showTab('blacklist')"
 							>
 								Blacklist
@@ -532,7 +536,6 @@ export default {
 			);
 		},
 		...mapActions("modals/manageStation", [
-			"showTab",
 			"editStation",
 			"setIncludedPlaylists",
 			"setExcludedPlaylists",
@@ -542,6 +545,12 @@ export default {
 			"updateStationPaused",
 			"updateCurrentSong"
 		]),
+		...mapActions({
+			showTab(dispatch, payload) {
+				this.$refs[`${payload}-tab`].scrollIntoView();
+				return dispatch("modals/manageStation/showTab", payload);
+			}
+		}),
 		...mapActions("modalVisibility", ["openModal", "closeModal"]),
 		...mapActions("user/playlists", ["editPlaylist"])
 	}