From 3514d934511c3de05ed7333434a2f56524869221 Mon Sep 17 00:00:00 2001 From: Padreug Date: Thu, 18 Jun 2026 14:31:39 +0200 Subject: [PATCH] feat(events): show selected categories as deselectable chips in calendar popup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The calendar popup already narrows its day-dots to the active category filter; surface those categories inside the popup so the user can see — and loosen — what's narrowing it without closing. Renders only the selected categories as removable chips; clicking one emits toggle-category to the parent, which reactively re-widens the dots in place. - EventCalendarPopup: optional selectedCategories prop (defaults to none for callers like My Tickets) + toggle-category emit; chip row between the header and the month grid. - EventsPage: wire selectedCategories + toggleCategory through. - i18n: events.filters.filteringBy + removeCategory (en/fr/es + schema). Co-Authored-By: Claude Opus 4.8 (1M context) --- src/i18n/locales/en.ts | 2 + src/i18n/locales/es.ts | 2 + src/i18n/locales/fr.ts | 2 + src/i18n/types.ts | 2 + .../events/components/EventCalendarPopup.vue | 55 +++++++++++++++++-- src/modules/events/views/EventsPage.vue | 2 + 6 files changed, 59 insertions(+), 6 deletions(-) diff --git a/src/i18n/locales/en.ts b/src/i18n/locales/en.ts index 34f4bc6..cacfb8c 100644 --- a/src/i18n/locales/en.ts +++ b/src/i18n/locales/en.ts @@ -71,6 +71,8 @@ const messages: LocaleMessages = { past: 'Past', filters: 'Filters', clearAll: 'Clear all', + filteringBy: 'Filtering by:', + removeCategory: 'Remove {category} filter', }, categories: { concert: 'Concert', diff --git a/src/i18n/locales/es.ts b/src/i18n/locales/es.ts index 048c71a..898352b 100644 --- a/src/i18n/locales/es.ts +++ b/src/i18n/locales/es.ts @@ -71,6 +71,8 @@ const messages: LocaleMessages = { past: 'Pasado', filters: 'Filtros', clearAll: 'Limpiar todo', + filteringBy: 'Filtrando por:', + removeCategory: 'Quitar el filtro {category}', }, categories: { concert: 'Concierto', diff --git a/src/i18n/locales/fr.ts b/src/i18n/locales/fr.ts index 57b3797..9638e69 100644 --- a/src/i18n/locales/fr.ts +++ b/src/i18n/locales/fr.ts @@ -71,6 +71,8 @@ const messages: LocaleMessages = { past: 'Passé', filters: 'Filtres', clearAll: 'Tout effacer', + filteringBy: 'Filtré par :', + removeCategory: 'Retirer le filtre {category}', }, categories: { concert: 'Concert', diff --git a/src/i18n/types.ts b/src/i18n/types.ts index f4177ba..ecdf42f 100644 --- a/src/i18n/types.ts +++ b/src/i18n/types.ts @@ -72,6 +72,8 @@ export interface LocaleMessages { past: string filters: string clearAll: string + filteringBy: string + removeCategory: string } categories: Record detail: { diff --git a/src/modules/events/components/EventCalendarPopup.vue b/src/modules/events/components/EventCalendarPopup.vue index 955d805..546c16f 100644 --- a/src/modules/events/components/EventCalendarPopup.vue +++ b/src/modules/events/components/EventCalendarPopup.vue @@ -1,5 +1,6 @@