feat(events): surface the buy-ticket CTA above the description + sticky bar #149
No reviewers
Labels
No labels
app:activities
app:chat
app:chatelet
app:events
app:forum
app:libra
app:market
app:restaurant
app:tasks
app:wallet
app:webapp
bug
enhancement
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
aiolabs/webapp!149
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/events-ticket-cta-placement"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
On events with a long description (Château du Faune: ~1.7k characters) the Buy ticket button sat at the very bottom of the page, below the fold on every phone. The buy action is the reason most visitors open the page.
What
bottom: 3.5rem + safe-area) whenever the inline block is scrolled out of view (useElementVisibilityfrom VueUse), and hides again when it is back or while the purchase / return dialogs are open. The page gets extra bottom padding while the bar is up so the organizer card is never covered.priceLabel/buyLabelso inline and sticky stay identical.One file,
src/modules/events/views/EventDetailPage.vue.vue-tsc -bclean, 26/26 events tests. Verified against the demo backend with a local dev server at 390×844 and 1280×900: CTA under date/location on load; sticky bar appears after scrolling past the block and disappears at the top; short-description events never show the bar (screenshots on the session).🤖 Generated with Claude Code
https://claude.ai/code/session_01ByAwHU4pRnyE58YocQvAas
Two follow-up commits after the first demo look showed a gap under the sticky bar on both phone and desktop:
feat(layout): publish the bottom nav's rendered height as --bottom-nav-height— BottomNav measures itself (ResizeObserver) and writes the variable on<html>;index.cssdeclares the0pxdefault; the restaurant item page's add-to-cart bar (which hand-derived3.5rem + safe-areaand carried a comment about an earlier gap of its own) is migrated to it. One source of truth for "flush above the nav".fix(events): pin the sticky buy bar flush above the nav— the bar lived inside the page'sspace-y-6column, whose child margin also offsets a fixed box (that was the 24px), and it used the hand-derived offset. It now teleports to<body>(same as the shell's dialogs/toaster) and uses the variable. Headless measurement: bar bottom == nav top at 390px and 1280px.