feat: add fiat checkout and nostr + email notification (#50)
* feat: fiat and email/nostr notifications * make n bake
This commit is contained in:
parent
4afc78d44d
commit
680b035ec9
9 changed files with 379 additions and 61 deletions
|
|
@ -16,41 +16,77 @@
|
|||
<q-card-section class="q-pa-none">
|
||||
<h5 class="q-mt-none">Buy Ticket</h5>
|
||||
<q-form @submit="createInvoice()" class="q-gutter-md">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<q-input
|
||||
filled
|
||||
dense
|
||||
v-model.trim="formDialog.data.name"
|
||||
label="Your name "
|
||||
:rules="[val => nameValidation(val)]"
|
||||
></q-input>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 q-pr-sm">
|
||||
<q-input
|
||||
filled
|
||||
dense
|
||||
v-model.trim="formDialog.data.email"
|
||||
type="email"
|
||||
:label="
|
||||
allowEmailNotifications
|
||||
? 'Your email (ticket delivery) '
|
||||
: 'Your email '
|
||||
"
|
||||
:rules="[
|
||||
val => !!val || '* Required',
|
||||
val => emailValidation(val)
|
||||
]"
|
||||
lazy-rules
|
||||
></q-input>
|
||||
</div>
|
||||
<div v-if="allowNostrNotifications" class="col-12 col-md-6">
|
||||
<q-input
|
||||
filled
|
||||
dense
|
||||
v-model.trim="formDialog.data.nostr_identifier"
|
||||
label="(optional) Nostr NIP-05 or npub"
|
||||
hint="If provided, we'll DM your ticket link after payment."
|
||||
></q-input>
|
||||
</div>
|
||||
</div>
|
||||
<q-input
|
||||
filled
|
||||
dense
|
||||
v-model.trim="formDialog.data.name"
|
||||
label="Your name "
|
||||
:rules="[val => nameValidation(val)]"
|
||||
></q-input>
|
||||
<q-input
|
||||
filled
|
||||
dense
|
||||
v-model.trim="formDialog.data.email"
|
||||
type="email"
|
||||
label="Your email "
|
||||
:rules="[
|
||||
val => !!val || '* Required',
|
||||
val => emailValidation(val)
|
||||
]"
|
||||
lazy-rules
|
||||
></q-input>
|
||||
<q-input
|
||||
v-if="this.extra?.conditional"
|
||||
v-if="event.extra?.conditional"
|
||||
filled
|
||||
dense
|
||||
v-model.trim="formDialog.data.refund"
|
||||
label="Refund lnadress or LNURL "
|
||||
:rules="[val => !!val || '* Required']"
|
||||
lazy-rules
|
||||
:hint="`If minimum tickets (${this.extra?.min_tickets}) are not met, refund will be sent.`"
|
||||
></q-input>
|
||||
<q-input
|
||||
filled
|
||||
dense
|
||||
v-model.trim="formDialog.data.promo_code"
|
||||
label="(optional) Promo Code "
|
||||
:hint="`If minimum tickets (${event.extra?.min_tickets}) are not met, refund will be sent.`"
|
||||
></q-input>
|
||||
<div class="row q-col-gutter-md q-pt-lg items-center">
|
||||
<div v-if="allowFiatCheckout" class="col-auto">
|
||||
<q-option-group
|
||||
v-model="formDialog.data.payment_method"
|
||||
inline
|
||||
:options="[
|
||||
{label: 'Lightning', value: 'lightning'},
|
||||
{
|
||||
label: `Fiat (${event.currency.toUpperCase()})`,
|
||||
value: 'fiat'
|
||||
}
|
||||
]"
|
||||
></q-option-group>
|
||||
</div>
|
||||
<div :class="allowFiatCheckout ? 'col-12 col-md-3' : 'col-12'">
|
||||
<q-input
|
||||
filled
|
||||
dense
|
||||
v-model.trim="formDialog.data.promo_code"
|
||||
label="(optional) Promo Code "
|
||||
></q-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row q-mt-lg">
|
||||
<q-btn
|
||||
unelevated
|
||||
|
|
@ -82,8 +118,6 @@
|
|||
type="a"
|
||||
>Link to your ticket!</q-btn
|
||||
>
|
||||
<br /><br />
|
||||
<p>You'll be redirected in a few moments...</p>
|
||||
</div>
|
||||
</q-card>
|
||||
</div>
|
||||
|
|
@ -94,6 +128,37 @@
|
|||
class="q-pa-lg q-pt-xl lnbits__dialog-card"
|
||||
>
|
||||
</q-card>
|
||||
<q-card
|
||||
v-else-if="receive.isFiat"
|
||||
class="q-pa-lg q-pt-xl lnbits__dialog-card"
|
||||
>
|
||||
<div class="text-center q-mb-lg">
|
||||
<div class="text-h6 q-mb-sm">Continue to checkout</div>
|
||||
<div class="text-body2 text-grey-5 q-mb-lg">
|
||||
Your fiat checkout opened in a new tab. If it did not, use the
|
||||
button below.
|
||||
</div>
|
||||
<q-btn
|
||||
unelevated
|
||||
color="primary"
|
||||
type="a"
|
||||
:href="receive.paymentReq"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
>
|
||||
Go to checkout
|
||||
</q-btn>
|
||||
</div>
|
||||
<div class="row q-mt-lg">
|
||||
<q-btn
|
||||
outline
|
||||
color="grey"
|
||||
@click="utils.copyText(receive.paymentReq)"
|
||||
>Copy payment link</q-btn
|
||||
>
|
||||
<q-btn v-close-popup flat color="grey" class="q-ml-auto">Close</q-btn>
|
||||
</div>
|
||||
</q-card>
|
||||
<q-card v-else class="q-pa-lg q-pt-xl lnbits__dialog-card">
|
||||
<div class="text-center q-mb-lg">
|
||||
<lnbits-qrcode
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue