diff --git a/src/modules/events/components/CreateEventDialog.vue b/src/modules/events/components/CreateEventDialog.vue index 7c35a48..b9ad6c1 100644 --- a/src/modules/events/components/CreateEventDialog.vue +++ b/src/modules/events/components/CreateEventDialog.vue @@ -598,7 +598,28 @@ const onSubmit = form.handleSubmit( notification_subject: formValues.notification_subject, notification_body: formValues.notification_body, promo_codes: toWirePromoCodes(promoRows.value), - ticket_waves: [primaryWave, ...extraWaves.value], + // Fiat is a per-wave opt-in in the extension, but the webapp + // offers ONE event-level control for it (the Card checkbox), so + // that checkbox governs every wave: ticking Card enables fiat on + // all of them, unticking disables it on all of them. Without this a + // wave added here refuses card payments while the event itself + // reads as fiat-enabled — what organisers hit on demo. + // + // Deliberately simple for now: it does mean a per-wave setting made + // in the LNbits admin is overwritten next time the event is saved + // from here. Acceptable while the webapp has no per-wave control to + // represent one, and better than a control that silently disagrees + // with what gets stored. + ticket_waves: [primaryWave, ...extraWaves.value].map((wave) => ({ + ...wave, + allow_fiat: acceptsFiat, + // The event's fiat currency, unconditionally — not a fallback to + // whatever the wave happened to hold. Waves created before this + // carry the backend's "GBP" default, and a wave settling in a + // different currency than the event advertises is not a state the + // webapp can represent or an organiser can have asked for. + fiat_currency: formValues.fiat_currency, + })), }; if (isEditMode.value) { diff --git a/src/modules/events/components/TicketWavesEditor.vue b/src/modules/events/components/TicketWavesEditor.vue index 189bc55..b152176 100644 --- a/src/modules/events/components/TicketWavesEditor.vue +++ b/src/modules/events/components/TicketWavesEditor.vue @@ -1,7 +1,6 @@