From 1544126d17da6a1c4222b67b403ded81ca17d300 Mon Sep 17 00:00:00 2001 From: padreug Date: Sun, 14 Sep 2025 18:04:17 +0200 Subject: [PATCH] Refactor CreateEventDialog and EventsPage components to integrate wallet selection - Removed the wallet input field from CreateEventDialog, now auto-selecting the preferred wallet using PaymentService. - Updated event creation logic in EventsPage to retrieve the wallet's admin key dynamically, ensuring better wallet management. - Added error handling for wallet availability, enhancing user feedback during event creation. These changes streamline the event creation process by automating wallet selection, improving the overall user experience. --- src/modules/events/views/EventsPage.vue | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/modules/events/views/EventsPage.vue b/src/modules/events/views/EventsPage.vue index d474983..af0bdc8 100644 --- a/src/modules/events/views/EventsPage.vue +++ b/src/modules/events/views/EventsPage.vue @@ -14,7 +14,7 @@ import PurchaseTicketDialog from '../components/PurchaseTicketDialog.vue' import CreateEventDialog from '../components/CreateEventDialog.vue' import { RefreshCw, User, LogIn, Plus } from 'lucide-vue-next' import { formatEventPrice } from '@/lib/utils/formatting' -import { injectService } from '@/core/di-container' +import { injectService, SERVICE_TOKENS } from '@/core/di-container' import { EVENTS_API_TOKEN } from '../composables/useEvents' import type { CreateEventRequest } from '../types/event' @@ -83,8 +83,18 @@ async function handleCreateEvent(eventData: CreateEventRequest) { throw new Error('Events API not available') } - // Use wallet as admin key for now - in production you'd want proper admin key management - await eventsApi.createEvent(eventData, eventData.wallet) + // Get the preferred wallet's admin key using PaymentService + const paymentService = injectService(SERVICE_TOKENS.PAYMENT_SERVICE) + if (!paymentService) { + throw new Error('Payment service not available') + } + + const adminKey = paymentService.getPreferredWalletAdminKey() + if (!adminKey) { + throw new Error('No wallet admin key available. Please connect a wallet first.') + } + + await eventsApi.createEvent(eventData, adminKey) } function handleEventCreated() {