mirror of
https://github.com/tcsenpai/swingmusic.git
synced 2025-06-07 03:35:35 +00:00
add all favorite tracks page
This commit is contained in:
parent
108182ab01
commit
22d5f6e896
@ -18,6 +18,7 @@
|
||||
<ArtistTracksTitle v-if="$route.name == Routes.artistTracks" />
|
||||
<FavoritesNav v-if="$route.name === Routes.favorites" />
|
||||
<FavoriteAlbumsNav v-if="$route.name === Routes.favoriteAlbums" />
|
||||
<FavoriteTracksNav v-if="$route.name === Routes.favoriteTracks" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -42,6 +43,7 @@ import ArtistDiscographyTitle from "./Titles/ArtistDiscographyTitle.vue";
|
||||
import ArtistTracksTitle from "./Titles/ArtistTracksTitle.vue";
|
||||
import FavoritesNav from "./Titles/FavoritesNav.vue";
|
||||
import FavoriteAlbumsNav from "./Titles/FavoriteAlbumsNav.vue";
|
||||
import FavoriteTracksNav from "./Titles/FavoriteTracksNav.vue";
|
||||
|
||||
const route = useRoute();
|
||||
|
||||
|
3
src/components/nav/Titles/FavoriteTracksNav.vue
Normal file
3
src/components/nav/Titles/FavoriteTracksNav.vue
Normal file
@ -0,0 +1,3 @@
|
||||
<template>
|
||||
<h2 style="margin: 0">Favorite Tracks ❤️</h2>
|
||||
</template>
|
@ -136,6 +136,12 @@ const favoriteAlbums = {
|
||||
component: () => import("@/views/FavoriteAlbums.vue"),
|
||||
};
|
||||
|
||||
const favoriteTracks = {
|
||||
path: "/favorites/tracks",
|
||||
name: "FavoriteTracks",
|
||||
component: () => import("@/views/FavoriteTracks.vue"),
|
||||
};
|
||||
|
||||
const notFound = {
|
||||
name: "NotFound",
|
||||
path: "/:pathMatch(.*)",
|
||||
@ -159,6 +165,7 @@ const routes = [
|
||||
ArtistTracks,
|
||||
favorites,
|
||||
favoriteAlbums,
|
||||
favoriteTracks,
|
||||
];
|
||||
|
||||
const Routes = {
|
||||
@ -178,6 +185,7 @@ const Routes = {
|
||||
artistTracks: ArtistTracks.name,
|
||||
favorites: favorites.name,
|
||||
favoriteAlbums: favoriteAlbums.name,
|
||||
favoriteTracks: favoriteTracks.name,
|
||||
};
|
||||
|
||||
export { routes, Routes };
|
||||
|
23
src/views/FavoriteTracks.vue
Normal file
23
src/views/FavoriteTracks.vue
Normal file
@ -0,0 +1,23 @@
|
||||
<template>
|
||||
<SongList :tracks="tracks" :handlePlay="handlePlay" />
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { Ref, ref } from "vue";
|
||||
|
||||
import { Track } from "@/interfaces";
|
||||
import useQueueStore from "@/stores/queue";
|
||||
import { getFavTracks } from "@/composables/fetch/favorite";
|
||||
|
||||
import SongList from "@/components/shared/SongList.vue";
|
||||
|
||||
const tracks: Ref<Track[]> = ref([]);
|
||||
const queue = useQueueStore();
|
||||
|
||||
getFavTracks(0).then((data) => (tracks.value = data));
|
||||
|
||||
function handlePlay(index: number) {
|
||||
queue.playFromFav(tracks.value);
|
||||
queue.play(index);
|
||||
}
|
||||
</script>
|
@ -11,7 +11,7 @@
|
||||
<div class="fav-tracks" v-if="favTracks.length">
|
||||
<TopTracks
|
||||
:tracks="favTracks"
|
||||
:route="'/home'"
|
||||
:route="'/favorites/tracks'"
|
||||
:title="'Tracks ❤️'"
|
||||
:playHandler="handlePlay"
|
||||
/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user