feat(fc3a): ArtistView — populate Subscription/Sources chips + manage link
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -23,10 +23,21 @@
|
||||
|
||||
<div class="fc-artist__fc4">
|
||||
<v-chip
|
||||
v-for="b in ['Subscription', 'Sources', 'Credential health']"
|
||||
:key="b" disabled size="small" variant="outlined"
|
||||
size="small"
|
||||
:variant="store.overview.is_subscription ? 'flat' : 'outlined'"
|
||||
:color="store.overview.is_subscription ? 'accent' : undefined"
|
||||
prepend-icon="mdi-rss"
|
||||
>{{ store.overview.is_subscription ? 'Subscription' : 'One-off' }}</v-chip>
|
||||
|
||||
<v-chip
|
||||
size="small" variant="outlined" prepend-icon="mdi-link-variant"
|
||||
:to="`/subscriptions?artist_id=${store.overview.id}`"
|
||||
>{{ store.overview.sources.length }} source{{ store.overview.sources.length === 1 ? '' : 's' }}</v-chip>
|
||||
|
||||
<v-chip
|
||||
size="small" variant="outlined" disabled
|
||||
prepend-icon="mdi-clock-outline"
|
||||
>{{ b }} · Coming in FC-4</v-chip>
|
||||
>Credential health · FC-3b</v-chip>
|
||||
</div>
|
||||
|
||||
<section v-if="store.overview.cooccurring_tags.length" class="fc-artist__sec">
|
||||
@@ -49,7 +60,13 @@
|
||||
</section>
|
||||
|
||||
<section v-if="store.overview.sources.length" class="fc-artist__sec">
|
||||
<h2 class="fc-h2">Sources</h2>
|
||||
<div class="fc-artist__sec-head">
|
||||
<h2 class="fc-h2">Sources</h2>
|
||||
<RouterLink
|
||||
:to="`/subscriptions?artist_id=${store.overview.id}`"
|
||||
class="fc-artist__manage"
|
||||
>Manage subscriptions →</RouterLink>
|
||||
</div>
|
||||
<v-table density="compact">
|
||||
<thead>
|
||||
<tr><th>Platform</th><th>URL</th><th class="text-right">Images</th></tr>
|
||||
@@ -80,7 +97,7 @@
|
||||
|
||||
<script setup>
|
||||
import { computed, watch } from 'vue'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import { useRoute, useRouter, RouterLink } from 'vue-router'
|
||||
import { useArtistStore } from '../stores/artist.js'
|
||||
import MasonryGrid from '../components/discovery/MasonryGrid.vue'
|
||||
|
||||
@@ -143,4 +160,14 @@ function openTag(tagId) {
|
||||
max-width: 380px; overflow: hidden; text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.fc-artist__sec-head {
|
||||
display: flex; align-items: baseline; justify-content: space-between;
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
.fc-artist__manage {
|
||||
font-size: 0.85rem;
|
||||
color: rgb(var(--v-theme-accent));
|
||||
text-decoration: none;
|
||||
}
|
||||
.fc-artist__manage:hover { text-decoration: underline; }
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user