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">
|
<div class="fc-artist__fc4">
|
||||||
<v-chip
|
<v-chip
|
||||||
v-for="b in ['Subscription', 'Sources', 'Credential health']"
|
size="small"
|
||||||
:key="b" disabled size="small" variant="outlined"
|
: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"
|
prepend-icon="mdi-clock-outline"
|
||||||
>{{ b }} · Coming in FC-4</v-chip>
|
>Credential health · FC-3b</v-chip>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<section v-if="store.overview.cooccurring_tags.length" class="fc-artist__sec">
|
<section v-if="store.overview.cooccurring_tags.length" class="fc-artist__sec">
|
||||||
@@ -49,7 +60,13 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section v-if="store.overview.sources.length" class="fc-artist__sec">
|
<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">
|
<v-table density="compact">
|
||||||
<thead>
|
<thead>
|
||||||
<tr><th>Platform</th><th>URL</th><th class="text-right">Images</th></tr>
|
<tr><th>Platform</th><th>URL</th><th class="text-right">Images</th></tr>
|
||||||
@@ -80,7 +97,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed, watch } from 'vue'
|
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 { useArtistStore } from '../stores/artist.js'
|
||||||
import MasonryGrid from '../components/discovery/MasonryGrid.vue'
|
import MasonryGrid from '../components/discovery/MasonryGrid.vue'
|
||||||
|
|
||||||
@@ -143,4 +160,14 @@ function openTag(tagId) {
|
|||||||
max-width: 380px; overflow: hidden; text-overflow: ellipsis;
|
max-width: 380px; overflow: hidden; text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
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>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user