From 1dfb025df34c3d007005e85d08b05d6c35d8ea53 Mon Sep 17 00:00:00 2001 From: Padreug Date: Thu, 4 Jun 2026 22:46:41 +0200 Subject: [PATCH] feat(activities): refine activity card for pending/rejected + compact MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Wash out pending/rejected events with opacity-50 + grayscale on a wrapper div so the operator sees at a glance the event isn't live, not just the small badge. - Pull the status badge OUT of the wash-out wrapper and absolute- position it on Card root (bottom-2 left-2, z-10) so it stays in full color above the dim card. Both pending and rejected use the destructive token — the label text differentiates the two states. Bottom-left so it doesn't collide with the category chip on full cards or the thumbnail on compact ones. - Compact rows in the Hosting view now show a small left-aligned thumbnail (w-20 h-20, self-center, ml-3, rounded-md) when the event carries an image — host can still recognize each event at a glance without paying the visual weight of a full hero. - Card root becomes `relative overflow-hidden`; the wrapper div owns the conditional flex-row (compact) / flex-col (default) layout and the opacity/grayscale toggling. --- src/modules/events/components/EventCard.vue | 83 +++++++++++++-------- src/modules/events/components/EventList.vue | 6 +- 2 files changed, 57 insertions(+), 32 deletions(-) diff --git a/src/modules/events/components/EventCard.vue b/src/modules/events/components/EventCard.vue index f214996..b26976d 100644 --- a/src/modules/events/components/EventCard.vue +++ b/src/modules/events/components/EventCard.vue @@ -62,19 +62,46 @@ const isPast = computed(() => { if (!end || isNaN(end.getTime())) return false return end.getTime() < Date.now() }) + +// Pending / rejected events get a washed-out look so the user +// sees at a glance the event isn't live, not just the small badge. +const isNonApproved = computed( + () => !!props.event.lnbitsStatus && props.event.lnbitsStatus !== 'approved', +) diff --git a/src/modules/events/components/EventList.vue b/src/modules/events/components/EventList.vue index 827b651..fbcc834 100644 --- a/src/modules/events/components/EventList.vue +++ b/src/modules/events/components/EventList.vue @@ -52,10 +52,12 @@ const { t } = useI18n() + tight rows; default mode is the responsive card grid. The + compact gap is bumped a notch so the status badge spilling + past the card's bottom edge has room to sit between cards. -->