mirror of
https://github.com/tcsenpai/swingmusic.git
synced 2025-06-11 05:27:21 +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" />
|
<ArtistTracksTitle v-if="$route.name == Routes.artistTracks" />
|
||||||
<FavoritesNav v-if="$route.name === Routes.favorites" />
|
<FavoritesNav v-if="$route.name === Routes.favorites" />
|
||||||
<FavoriteAlbumsNav v-if="$route.name === Routes.favoriteAlbums" />
|
<FavoriteAlbumsNav v-if="$route.name === Routes.favoriteAlbums" />
|
||||||
|
<FavoriteTracksNav v-if="$route.name === Routes.favoriteTracks" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -42,6 +43,7 @@ import ArtistDiscographyTitle from "./Titles/ArtistDiscographyTitle.vue";
|
|||||||
import ArtistTracksTitle from "./Titles/ArtistTracksTitle.vue";
|
import ArtistTracksTitle from "./Titles/ArtistTracksTitle.vue";
|
||||||
import FavoritesNav from "./Titles/FavoritesNav.vue";
|
import FavoritesNav from "./Titles/FavoritesNav.vue";
|
||||||
import FavoriteAlbumsNav from "./Titles/FavoriteAlbumsNav.vue";
|
import FavoriteAlbumsNav from "./Titles/FavoriteAlbumsNav.vue";
|
||||||
|
import FavoriteTracksNav from "./Titles/FavoriteTracksNav.vue";
|
||||||
|
|
||||||
const route = useRoute();
|
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"),
|
component: () => import("@/views/FavoriteAlbums.vue"),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const favoriteTracks = {
|
||||||
|
path: "/favorites/tracks",
|
||||||
|
name: "FavoriteTracks",
|
||||||
|
component: () => import("@/views/FavoriteTracks.vue"),
|
||||||
|
};
|
||||||
|
|
||||||
const notFound = {
|
const notFound = {
|
||||||
name: "NotFound",
|
name: "NotFound",
|
||||||
path: "/:pathMatch(.*)",
|
path: "/:pathMatch(.*)",
|
||||||
@ -159,6 +165,7 @@ const routes = [
|
|||||||
ArtistTracks,
|
ArtistTracks,
|
||||||
favorites,
|
favorites,
|
||||||
favoriteAlbums,
|
favoriteAlbums,
|
||||||
|
favoriteTracks,
|
||||||
];
|
];
|
||||||
|
|
||||||
const Routes = {
|
const Routes = {
|
||||||
@ -178,6 +185,7 @@ const Routes = {
|
|||||||
artistTracks: ArtistTracks.name,
|
artistTracks: ArtistTracks.name,
|
||||||
favorites: favorites.name,
|
favorites: favorites.name,
|
||||||
favoriteAlbums: favoriteAlbums.name,
|
favoriteAlbums: favoriteAlbums.name,
|
||||||
|
favoriteTracks: favoriteTracks.name,
|
||||||
};
|
};
|
||||||
|
|
||||||
export { routes, Routes };
|
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">
|
<div class="fav-tracks" v-if="favTracks.length">
|
||||||
<TopTracks
|
<TopTracks
|
||||||
:tracks="favTracks"
|
:tracks="favTracks"
|
||||||
:route="'/home'"
|
:route="'/favorites/tracks'"
|
||||||
:title="'Tracks ❤️'"
|
:title="'Tracks ❤️'"
|
||||||
:playHandler="handlePlay"
|
:playHandler="handlePlay"
|
||||||
/>
|
/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user