From 1e43e8ed0a968ec50b96cc09525ced069355c8a0 Mon Sep 17 00:00:00 2001 From: Padreug Date: Tue, 8 Sep 2026 13:02:31 +0200 Subject: [PATCH] fix(events): let guests default to the card rail in the purchase dialog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `selectedMethodId` started as 'lightning', so the "keep the current selection" guard in the default-rail watcher always found a match and the guest preference for fiat never applied — verified on demo, where an anonymous buyer saw "Proceed" (Lightning) preselected with Card on offer. Start empty and reset to empty on close so each open re-evaluates: guests land on Card when it exists, everyone else on the first enabled rail, exactly as the comment already promised. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01EYwoAkZZmXMMmaBp4WGUBo --- src/modules/events/components/PurchaseTicketDialog.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/events/components/PurchaseTicketDialog.vue b/src/modules/events/components/PurchaseTicketDialog.vue index 53eac52..cff41e3 100644 --- a/src/modules/events/components/PurchaseTicketDialog.vue +++ b/src/modules/events/components/PurchaseTicketDialog.vue @@ -161,7 +161,9 @@ watch( const { providers, providerMeta } = useFiatProviders() const { convert } = usePriceConversion() -const selectedMethodId = ref('lightning') +// Empty until the dialog opens: the watcher below picks the default per +// rail availability + auth state, so a guest lands on Card, not Lightning. +const selectedMethodId = ref('') const isFiatPending = ref(false) const fiatError = ref(null) @@ -336,7 +338,7 @@ async function handlePurchase(contact: { name?: string; email: string }) { function handleClose() { emit('update:isOpen', false) resetPaymentState() - selectedMethodId.value = 'lightning' + selectedMethodId.value = '' fiatError.value = null isFiatPending.value = false quantity.value = 1