diff --git a/frontend/src/components/modal/ProvenancePanel.vue b/frontend/src/components/modal/ProvenancePanel.vue index b4d641e..1d8e5ee 100644 --- a/frontend/src/components/modal/ProvenancePanel.vue +++ b/frontend/src/components/modal/ProvenancePanel.vue @@ -18,9 +18,13 @@ {{ e.source.platform }} {{ postDate(e) }} -
+
+
by {{ e.artist.name }} @@ -29,12 +33,8 @@ · {{ e.post.attachment_count }} files
-
- - View post - +
{{ expanded[e.provenance_id] ? 'Hide description ▴' : 'Show description ▾' }}
@@ -137,10 +137,16 @@ function postTitle(e) { return toPlainText(e.post.title) || `Post ${e.post.external_post_id}` } -function openPost(postId) { +function openPost(postId, artistId) { // Land on the post in the posts feed (in context), not the gallery - // image grid. Operator-flagged 2026-05-28. - router.push({ path: '/posts', query: { post_id: postId } }) + // image grid. Scope the feed to this artist so the user lands in + // that creator's stream, not the global one — operator-flagged + // 2026-06-01. PostsView reads `artist_id` from the query string + // (PostsView.vue line ~92) and filters via post_feed_service. + router.push({ + path: '/posts', + query: { post_id: postId, artist_id: artistId }, + }) modal.close() } @@ -163,8 +169,21 @@ function openPost(postId) { text-transform: lowercase; } .fc-prov__post { - font-weight: 700; margin: 4px 0; - color: rgb(var(--v-theme-on-surface)); + /* Clickable title — opens the post in the artist-scoped feed + (operator-flagged 2026-06-01: title IS the primary action, the + prior "View post" link was redundant). Styled as a button-link: + accent color, underline on hover, focus ring for keyboard nav. */ + display: block; width: 100%; text-align: left; + background: none; border: none; padding: 0; + font: inherit; font-weight: 700; + margin: 4px 0; + color: rgb(var(--v-theme-accent)); + cursor: pointer; +} +.fc-prov__post:hover { text-decoration: underline; } +.fc-prov__post:focus-visible { + outline: 2px solid rgb(var(--v-theme-accent)); + outline-offset: 2px; border-radius: 3px; } .fc-prov__meta { font-size: 13px; color: rgb(var(--v-theme-on-surface-variant)); diff --git a/frontend/src/components/modal/SuggestionItem.vue b/frontend/src/components/modal/SuggestionItem.vue index 2045f57..9517649 100644 --- a/frontend/src/components/modal/SuggestionItem.vue +++ b/frontend/src/components/modal/SuggestionItem.vue @@ -1,19 +1,33 @@