feat: add payment options

This commit is contained in:
Vlad Stan 2023-02-07 16:03:13 +02:00
parent a74cf42feb
commit 43f3fbfb44
3 changed files with 108 additions and 2 deletions

View file

@ -59,7 +59,99 @@
</div> </div>
</q-tab-panel> </q-tab-panel>
<q-tab-panel name="payment"> <q-tab-panel name="payment">
<span>yyyy</span> <div v-if="relay">
<div class="row items-center no-wrap q-mb-md">
<div class="col-3 q-pr-lg">Require Payment:</div>
<div class="col-3 q-pr-lg">
<q-toggle
color="secodary"
v-model="relay.config.isPaidRelay"
@input="togglePaidRelay"
></q-toggle>
</div>
<div class="col-6">
<q-select
v-if="relay.config.isPaidRelay"
filled
dense
emit-value
v-model="relay.config.wallet"
:options="walletOptions"
label="Wallet *"
>
</q-select>
</div>
</div>
<div
v-if="relay.config.isPaidRelay"
class="row items-center no-wrap q-mb-md"
>
<div class="col-3 q-pr-lg">Cost to join (sats):</div>
<div class="col-3 q-pr-lg">
<q-input
filled
dense
v-model.trim="relay.config.costToJoin"
type="number"
min="0"
></q-input>
</div>
<div class="col-6">
<q-badge
v-if="relay.config.costToJoin == 0"
color="green"
class="float-left"
><span>Free to join</span>
</q-badge>
</div>
</div>
<div
v-if="relay.config.isPaidRelay"
class="row items-center no-wrap q-mb-md"
>
<div class="col-3 q-pr-lg">Cost per Kilo Byte (sats):</div>
<div class="col-3 q-pr-lg">
<q-input
filled
dense
v-model.trim="relay.config.storageCostPerKb"
type="number"
min="0"
></q-input>
</div>
<div class="col-6">
<q-badge
v-if="relay.config.storageCostPerKb == 0"
color="green"
class="float-left"
><span>Unlimited storage</span>
</q-badge>
</div>
</div>
<div
v-if="relay.config.isPaidRelay && relay.config.storageCostPerKb == 0"
class="row items-center no-wrap q-mb-md"
>
<div class="col-3 q-pr-lg">Free storage (kb):</div>
<div class="col-3 q-pr-lg">
<q-input
filled
dense
v-model.trim="relay.config.freeStorage"
type="number"
min="0"
></q-input>
</div>
<div class="col-6">
<q-badge
v-if="relay.config.freeStorage == 0"
color="orange"
class="float-left"
><span>No free storage</span>
</q-badge>
</div>
</div>
</div>
</q-tab-panel> </q-tab-panel>
<q-tab-panel name="config"> <q-tab-panel name="config">
<span>zzz</span> <span>zzz</span>

View file

@ -4,7 +4,7 @@ async function relayDetails(path) {
name: 'relay-details', name: 'relay-details',
template, template,
props: ['relay-id', 'adminkey', 'inkey'], props: ['relay-id', 'adminkey', 'inkey', 'wallet-options'],
data: function () { data: function () {
return { return {
tab: 'info', tab: 'info',
@ -54,7 +54,16 @@ async function relayDetails(path) {
'/nostrrelay/api/v1/relay/' + this.relayId, '/nostrrelay/api/v1/relay/' + this.relayId,
this.inkey this.inkey
) )
data.config = {
isPaidRelay: true,
wallet: '',
costToJoin: 0,
freeStorage: 0,
storageCostPerKb: 0
}
this.relay = data this.relay = data
console.log('### this.relay', this.relay)
} catch (error) { } catch (error) {
LNbits.utils.notifyApiError(error) LNbits.utils.notifyApiError(error)
} }
@ -77,6 +86,10 @@ async function relayDetails(path) {
} catch (error) { } catch (error) {
LNbits.utils.notifyApiError(error) LNbits.utils.notifyApiError(error)
} }
},
togglePaidRelay: async function () {
this.relay.config.wallet =
this.relay.config.wallet || this.walletOptions[0].value
} }
}, },

View file

@ -96,6 +96,7 @@
:relay-id="props.row.id" :relay-id="props.row.id"
:adminkey="g.user.wallets[0].adminkey" :adminkey="g.user.wallets[0].adminkey"
:inkey="g.user.wallets[0].inkey" :inkey="g.user.wallets[0].inkey"
:wallet-options="g.user.walletOptions"
@relay-deleted="handleRelayDeleted" @relay-deleted="handleRelayDeleted"
@relay-updated="handleRelayUpdated" @relay-updated="handleRelayUpdated"
></relay-details> ></relay-details>