split starred into tabs

This commit is contained in:
Thomas Amland 2021-05-09 10:56:58 +02:00
parent 3d89d3f26d
commit b1ee4b18dc
2 changed files with 30 additions and 15 deletions

View File

@ -1,18 +1,29 @@
<template> <template>
<ContentLoader v-slot :loading="result == null"> <div>
<div v-if="result.albums.length > 0" class="mb-4"> <h1>Starred</h1>
<h1>Albums</h1> <ul class="nav-underlined">
<AlbumList :items="result.albums" /> <li>
</div> <router-link :to="{... $route, params: { }}">
<div v-if="result.artists.length > 0" class="mb-4"> Albums
<h1>Artists</h1> </router-link>
<ArtistList :items="result.artists" /> </li>
</div> <li>
<div v-if="result.tracks.length > 0" class="mb-4"> <router-link :to="{... $route, params: { section: 'artists' }}">
<h1>Tracks</h1> Artists
<TrackList :tracks="result.tracks" /> </router-link>
</div> </li>
</ContentLoader> <li>
<router-link :to="{... $route, params: { section: 'tracks' }}">
Tracks
</router-link>
</li>
</ul>
<ContentLoader v-slot :loading="result == null">
<ArtistList v-if="section === 'artists'" :items="result.artists" />
<TrackList v-else-if="section === 'tracks'" :tracks="result.tracks" />
<AlbumList v-else :items="result.albums" />
</ContentLoader>
</div>
</template> </template>
<script lang="ts"> <script lang="ts">
import Vue from 'vue' import Vue from 'vue'
@ -26,6 +37,9 @@
ArtistList, ArtistList,
TrackList, TrackList,
}, },
props: {
section: { type: String, default: '' },
},
data() { data() {
return { return {
result: null as any, result: null as any,

View File

@ -88,8 +88,9 @@ export function setupRouter(auth: AuthService) {
}, },
{ {
name: 'starred', name: 'starred',
path: '/starred', path: '/starred/:section?',
component: Starred, component: Starred,
props: true,
}, },
{ {
name: 'radio', name: 'radio',