diff --git a/src/modules/events/components/EventCard.vue b/src/modules/events/components/EventCard.vue index 26ec0cf..f214996 100644 --- a/src/modules/events/components/EventCard.vue +++ b/src/modules/events/components/EventCard.vue @@ -12,6 +12,10 @@ import type { Event } from '../types/event' const props = defineProps<{ event: Event + /** Render a compact row: no hero image, no summary, single-line + * title, tighter padding. Used by the Hosting view where the + * host already knows what their events look like. */ + compact?: boolean }>() const emit = defineEmits<{ @@ -65,12 +69,12 @@ const isPast = computed(() => { class="overflow-hidden cursor-pointer hover:shadow-lg transition-shadow duration-200 flex flex-col" @click="emit('click', event)" > - -
+ +
{
- - -
+ + +
{{ categoryLabel }} {{ priceDisplay }} - + Yours @@ -167,26 +174,34 @@ const isPast = computed(() => {
- +
-

+

{{ event.title }}

- +

{{ event.summary }}

-
+
diff --git a/src/modules/events/components/EventList.vue b/src/modules/events/components/EventList.vue index 8a8ab65..827b651 100644 --- a/src/modules/events/components/EventList.vue +++ b/src/modules/events/components/EventList.vue @@ -7,6 +7,10 @@ import type { Event } from '../types/event' defineProps<{ events: Event[] isLoading?: boolean + /** Render compact rows instead of full-image cards. Used by the + * Hosting view so an operator can scan their roster of events + * without the visual weight of hero images they already recognize. */ + compact?: boolean }>() const emit = defineEmits<{ @@ -47,12 +51,17 @@ const { t } = useI18n()

- -
+ +
diff --git a/src/modules/events/views/EventDetailPage.vue b/src/modules/events/views/EventDetailPage.vue index 8fedfeb..cf24c80 100644 --- a/src/modules/events/views/EventDetailPage.vue +++ b/src/modules/events/views/EventDetailPage.vue @@ -170,36 +170,14 @@ function goToMyTickets() {