From 4415e0108339585a8e3b46b30b7dfdf7e55dc4c4 Mon Sep 17 00:00:00 2001 From: Padreug Date: Sat, 23 May 2026 23:08:33 +0200 Subject: [PATCH] ui(activities): surface tickets-remaining on the event detail page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The card had it; the detail page didn't. Reuses the same three- state language as the card ("Unlimited" / "{count} tickets available" / "Sold out") so the buyer sees the same signal on both surfaces. Placed at the top of the tickets section, above the owned-tickets chip + buy CTA, so it reads top-down: how many are left → how many you have → buy more. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../activities/views/ActivityDetailPage.vue | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/modules/activities/views/ActivityDetailPage.vue b/src/modules/activities/views/ActivityDetailPage.vue index 4853c8e..7020237 100644 --- a/src/modules/activities/views/ActivityDetailPage.vue +++ b/src/modules/activities/views/ActivityDetailPage.vue @@ -274,9 +274,23 @@ function goToMyTickets() { + bottom-up: availability count, then existing owned + tickets (when count > 0) above a Purchase CTA (when + capacity remains). -->
+
+ + + {{ t('activities.detail.unlimitedTickets', 'Unlimited tickets') }} + + + {{ t('activities.detail.ticketsAvailable', { count: activity.ticketInfo.available }) }} + + + {{ t('activities.detail.soldOut') }} + +
+