feat(events): calendar date-picker popup, remove calendar page, My Tickets filtering #110

Merged
padreug merged 14 commits from feat/events-calendar-popup into dev 2026-06-17 08:36:14 +00:00
Owner

Calendar-UX bucket split out of #105.

Replaces the standalone calendar page with an on-feed date-picker popup, and adds a calendar date visual to My Tickets.

  • Reusable EventCalendarPopup (month grid + per-day event dots) + pickerMode on EventCalendarView.
  • Feed: the calendar button opens the popup → pick a day → feed filters to it; a removable date chip clears the date independently of categories.
  • Removed the redundant week-day strip + the now-dead specific-date filter logic; the calendar icon now sits next to the temporal pills.
  • Deleted the /events/calendar page + route.
  • My Tickets: upcoming/past toggle + a calendar dropdown over the user's own event dates (pick a day to filter their tickets).
  • Compacted the month grid; popup force-closes on route leave.

Split note: the My-Tickets upcoming/past toggle rides here (shares MyTicketsPage.vue with the calendar view) to keep the split conflict-free.

🤖 Generated with Claude Code

Calendar-UX bucket split out of #105. Replaces the standalone calendar page with an on-feed **date-picker popup**, and adds a **calendar date visual to My Tickets**. - Reusable `EventCalendarPopup` (month grid + per-day event dots) + `pickerMode` on `EventCalendarView`. - **Feed:** the calendar button opens the popup → pick a day → feed filters to it; a removable date chip clears the date **independently of categories**. - Removed the redundant week-day strip + the now-dead specific-date filter logic; the calendar icon now sits next to the temporal pills. - **Deleted** the `/events/calendar` page + route. - **My Tickets:** upcoming/past toggle + a calendar dropdown over the user's own event dates (pick a day to filter their tickets). - Compacted the month grid; popup force-closes on route leave. Split note: the My-Tickets upcoming/past toggle rides here (shares `MyTicketsPage.vue` with the calendar view) to keep the split conflict-free. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The month-grid calendar opened with no day selected, so the events panel
below was empty until the user clicked a day. Initialise the selection to
today (currentMonth already starts on the current month) so it opens
showing today's events.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The calendar page had no way back to the feed except the browser/back
gesture. Add a top-bar ghost Back link (ArrowLeft + "Back" → events feed)
mirroring EventDetailPage's pattern for navigation consistency.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The feed had two redundant day controls — the DatePickerStrip week strip
and the temporal preset pills — on top of the calendar page. Remove the
week strip (the calendar already covers picking a specific date) and move
the calendar shortcut to the end of the temporal-filter row, next to the
pills. Frees a row and keeps coarse windows (Today/This Week/…) inline
with one-tap access to the full calendar.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
With the DatePickerStrip gone, selectedDate/selectDate in useEventFilters
were unreachable — nothing set a specific date anymore (the calendar page
only navigates to event detail). Delete the orphaned DatePickerStrip
component and strip the now-dead date-filter branch, state, and actions.
The feed filters purely by temporal pills + past/upcoming + categories.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
My Tickets listed every ticket with no way to separate events that
already happened. Add an Upcoming/Past segmented toggle (defaults to
upcoming) that filters the grouped tickets by their event's date, with
the tab counts (All/Paid/Pending/Registered) derived from the visible
set so badges match what's shown. Events not yet resolved from relays
stay visible under Upcoming until their date is known.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The toggle sat in the header's top-right corner, where it collided with
the fixed top-right hamburger menu (the Past button rendered behind it).
Move it to its own left-aligned row above the tabs — same approach the
calendar page uses to clear the hamburger.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The aspect-square day cells made the month grid ~350px tall on mobile,
pushing the selected-day event list well below the fold. Switch cells to
a fixed h-12 (still a comfortable 48px tap target) and tighten the
section spacing (space-y-4 → space-y-2), so the grid + day's events fit
with less scrolling.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The My-tickets filter chip sat on its own row below the Back link,
wasting vertical space. Move it onto the Back-button row (still
left-aligned to clear the fixed top-right hamburger), reclaiming a row.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a pickerMode to EventCalendarView (month grid only, emits selectDate
on every day tap, no selected-day events panel) and a new
EventCalendarPopup dialog wrapping it. Picking a day emits the date and
closes. Groundwork for replacing the standalone calendar page with an
on-feed date-picker popup and a My-Tickets event-date visual.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bring back selectedDate filtering, now driven by the calendar popup
instead of the removed week-strip: when a day is picked it takes
priority over the temporal pills and bypasses the past/upcoming split.
Add a dedicated clearSelectedDate() so the date selection can be cleared
independently of categories (a preset pill also clears it).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The calendar button now opens the date-picker popup instead of
navigating to a separate page. Picking a day filters the feed to that
day (button highlights while active) and shows a removable date chip
whose ✕ clears ONLY the date selection — distinct from category
clearing, which keeps its own clear in the filter dropdown. Dots in the
popup come from the full (unfiltered) event set.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The calendar is now a date-picker popup on the feed (and, next, a visual
on My Tickets), so the dedicated /events/calendar page and route are no
longer needed. Delete EventsCalendarPage.vue, drop its route, and update
the stale openCreate comment.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replaces the My-tickets filter that lived on the removed calendar page.
A calendar button opens the date-picker popup with per-day dots over the
user's own events; picking a day filters the ticket list to it (a
removable date chip overrides the upcoming/past toggle while active).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Defensive guard so the date-picker popup can never linger across
navigation (reported: it appeared open on the feed after returning from
an event detail page). Force calendarOpen=false in onBeforeRouteLeave on
both the feed and My Tickets, the two popup hosts. Modals shouldn't
survive a route change regardless of how the close/navigation interleave.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
padreug force-pushed feat/events-calendar-popup from 8339cd1272 to 9d98f3fdf2 2026-06-17 08:35:29 +00:00 Compare
padreug deleted branch feat/events-calendar-popup 2026-06-17 08:36:14 +00:00
Sign in to join this conversation.
No description provided.