mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-25 07:07:48 +01:00
feat: store tokenBuys
This commit is contained in:
parent
67d824b610
commit
33522204d6
1 changed files with 117 additions and 123 deletions
|
@ -110,142 +110,129 @@ page_container %}
|
||||||
:filter="buysTable.filter"
|
:filter="buysTable.filter"
|
||||||
>
|
>
|
||||||
{% raw %}
|
{% raw %}
|
||||||
<template v-slot:header="props">
|
|
||||||
<q-tr :props="props">
|
|
||||||
<q-th auto-width></q-th>
|
|
||||||
<q-th v-for="col in props.cols" :key="col.name" :props="props"
|
|
||||||
>{{ col.label }}</q-th
|
|
||||||
>
|
|
||||||
</q-tr>
|
|
||||||
</template>
|
|
||||||
<template v-slot:body="props">
|
<template v-slot:body="props">
|
||||||
<q-tr :props="props">
|
<q-tr :props="props">
|
||||||
<q-td auto-width class="text-center">
|
|
||||||
<q-icon
|
|
||||||
v-if="props.row.isPaid"
|
|
||||||
size="14px"
|
|
||||||
:name="props.row.isOut ? 'call_made' : 'call_received'"
|
|
||||||
:color="props.row.isOut ? 'pink' : 'green'"
|
|
||||||
@click="props.expand = !props.expand"
|
|
||||||
></q-icon>
|
|
||||||
<q-icon
|
|
||||||
v-else
|
|
||||||
name="settings_ethernet"
|
|
||||||
color="grey"
|
|
||||||
@click="props.expand = !props.expand"
|
|
||||||
>
|
|
||||||
<q-tooltip>Pending</q-tooltip>
|
|
||||||
</q-icon>
|
|
||||||
</q-td>
|
|
||||||
<q-td
|
<q-td
|
||||||
key="memo"
|
key="amount"
|
||||||
:props="props"
|
:props="props"
|
||||||
style="white-space: normal; word-break: break-all"
|
:class="props.row.amount > 0 ? 'text-green-13 text-weight-bold' : ''"
|
||||||
>
|
>
|
||||||
<q-badge
|
<div>{{props.row.amount}}</div>
|
||||||
v-if="props.row.tag"
|
|
||||||
color="yellow"
|
|
||||||
text-color="black"
|
|
||||||
>
|
|
||||||
<a
|
|
||||||
class="inherit"
|
|
||||||
:href="['/', props.row.tag, '/?usr=', user.id].join('')"
|
|
||||||
>
|
|
||||||
#{{ props.row.tag }}
|
|
||||||
</a>
|
|
||||||
</q-badge>
|
|
||||||
{{ props.row.memo }}
|
|
||||||
</q-td>
|
|
||||||
<q-td auto-width key="date" :props="props">
|
|
||||||
<q-tooltip>{{ props.row.date }}</q-tooltip>
|
|
||||||
{{ props.row.dateFrom }}
|
|
||||||
</q-td>
|
|
||||||
{% endraw %}
|
|
||||||
<q-td
|
|
||||||
auto-width
|
|
||||||
key="sat"
|
|
||||||
v-if="'{{LNBITS_DENOMINATION}}' != 'sats'"
|
|
||||||
:props="props"
|
|
||||||
>{% raw %} {{
|
|
||||||
parseFloat(String(props.row.fsat).replaceAll(",", "")) / 100
|
|
||||||
}}
|
|
||||||
</q-td>
|
</q-td>
|
||||||
|
|
||||||
<q-td auto-width key="sat" v-else :props="props">
|
<q-td key="memo" :props="props">
|
||||||
{{ props.row.fsat }}
|
<div>{{props.row.memo}}</div>
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td auto-width key="fee" :props="props">
|
<q-td key="date" :props="props">
|
||||||
{{ props.row.fee }}
|
<div>{{props.row.date}}</div>
|
||||||
</q-td>
|
</q-td>
|
||||||
|
<q-td key="hash" :props="props">
|
||||||
|
<div>{{props.row.hash}}</div>
|
||||||
|
</q-td>
|
||||||
|
|
||||||
</q-tr>
|
</q-tr>
|
||||||
|
<!-- <q-tr v-show="props.row.expanded" :props="props">
|
||||||
<q-dialog v-model="props.expand" :props="props">
|
<q-td colspan="100%">
|
||||||
<q-card class="q-pa-lg q-pt-xl lnbits__dialog-card">
|
<div class="row items-center q-mt-md q-mb-lg">
|
||||||
<div class="text-center q-mb-lg">
|
<div class="col-2 q-pr-lg"></div>
|
||||||
<div v-if="props.row.isIn && props.row.pending">
|
<div class="col-2 q-pr-lg">
|
||||||
<q-icon name="settings_ethernet" color="grey"></q-icon>
|
|
||||||
Invoice waiting to be paid
|
|
||||||
<lnbits-payment-details
|
|
||||||
:payment="props.row"
|
|
||||||
></lnbits-payment-details>
|
|
||||||
<div
|
|
||||||
v-if="props.row.bolt11"
|
|
||||||
class="text-center q-mb-lg"
|
|
||||||
>
|
|
||||||
<a :href="'lightning:' + props.row.bolt11">
|
|
||||||
<q-responsive :ratio="1" class="q-mx-xl">
|
|
||||||
<qrcode
|
|
||||||
:value="props.row.bolt11"
|
|
||||||
:options="{width: 340}"
|
|
||||||
class="rounded-borders"
|
|
||||||
>
|
|
||||||
</qrcode>
|
|
||||||
</q-responsive>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="row q-mt-lg">
|
|
||||||
<q-btn outline color="grey">Copy invoice</q-btn>
|
|
||||||
<q-btn
|
<q-btn
|
||||||
v-close-popup
|
unelevated
|
||||||
flat
|
dense
|
||||||
|
size="md"
|
||||||
|
icon="qr_code"
|
||||||
|
:color="($q.dark.isActive) ? 'grey-7' : 'grey-5'"
|
||||||
|
@click="showAddressDetails(props.row)"
|
||||||
|
>
|
||||||
|
QR Code</q-btn
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="col-2 q-pr-lg">
|
||||||
|
<q-btn
|
||||||
|
outline
|
||||||
color="grey"
|
color="grey"
|
||||||
class="q-ml-auto"
|
icon="content_copy"
|
||||||
>Close</q-btn
|
@click="copyText(props.row.address)"
|
||||||
|
class="q-ml-sm"
|
||||||
|
>Copy</q-btn
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="col-2 q-pr-lg">
|
||||||
|
<q-btn
|
||||||
|
outline
|
||||||
|
dense
|
||||||
|
size="md"
|
||||||
|
icon="refresh"
|
||||||
|
color="grey"
|
||||||
|
@click="scanAddress(props.row)"
|
||||||
|
>
|
||||||
|
Rescan</q-btn
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="col-2 q-pr-lg">
|
||||||
|
<q-btn
|
||||||
|
outline
|
||||||
|
dense
|
||||||
|
size="md"
|
||||||
|
icon="history"
|
||||||
|
color="grey"
|
||||||
|
@click="searchInTab('history', props.row.address)"
|
||||||
|
>History</q-btn
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="col-2 q-pr-lg">
|
||||||
|
<q-btn
|
||||||
|
outline
|
||||||
|
dense
|
||||||
|
size="md"
|
||||||
|
color="grey"
|
||||||
|
@click="searchInTab('utxos', props.row.address)"
|
||||||
|
>View Coins</q-btn
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="props.row.isPaid && props.row.isIn">
|
|
||||||
<q-icon
|
<div class="row items-center no-wrap q-mb-md">
|
||||||
size="18px"
|
<div class="col-2 q-pr-lg">Note:</div>
|
||||||
:name="'call_received'"
|
<div class="col-8 q-pr-lg">
|
||||||
:color="'green'"
|
<q-input
|
||||||
></q-icon>
|
filled
|
||||||
Payment Received
|
dense
|
||||||
<lnbits-payment-details
|
v-model.trim="props.row.note"
|
||||||
:payment="props.row"
|
type="text"
|
||||||
></lnbits-payment-details>
|
label="Note"
|
||||||
|
></q-input>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="props.row.isPaid && props.row.isOut">
|
<div class="col-2 q-pr-lg">
|
||||||
<q-icon
|
<q-btn
|
||||||
size="18px"
|
outline
|
||||||
:name="'call_made'"
|
color="grey"
|
||||||
:color="'pink'"
|
@click="updateNoteForAddress(props.row, props.row.note)"
|
||||||
></q-icon>
|
>Update
|
||||||
Payment Sent
|
</q-btn>
|
||||||
<lnbits-payment-details
|
|
||||||
:payment="props.row"
|
|
||||||
></lnbits-payment-details>
|
|
||||||
</div>
|
|
||||||
<div v-else-if="props.row.isOut && props.row.pending">
|
|
||||||
<q-icon name="settings_ethernet" color="grey"></q-icon>
|
|
||||||
Outgoing payment pending
|
|
||||||
<lnbits-payment-details
|
|
||||||
:payment="props.row"
|
|
||||||
></lnbits-payment-details>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-card>
|
|
||||||
</q-dialog>
|
<div v-if="props.row.error" class="row items-center no-wrap q-mb-md">
|
||||||
|
<div class="col-2 q-pr-lg"></div>
|
||||||
|
<div class="col-10 q-pr-lg">
|
||||||
|
<q-badge color="red">{{props.row.error}}</q-badge>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="props.row.gapLimitExceeded"
|
||||||
|
class="row items-center no-wrap q-mb-md"
|
||||||
|
>
|
||||||
|
<div class="col-2 q-pr-lg"></div>
|
||||||
|
<div class="col-10 q-pr-lg">
|
||||||
|
<q-badge color="yellow" text-color="black"
|
||||||
|
>Gap limit of 20 addresses exceeded. Other wallets might not
|
||||||
|
detect funds at this address.</q-badge
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-td>
|
||||||
|
</q-tr> -->
|
||||||
</template>
|
</template>
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
</q-table>
|
</q-table>
|
||||||
|
@ -623,6 +610,7 @@ page_container %}
|
||||||
|
|
||||||
mintId: '',
|
mintId: '',
|
||||||
mintName: '',
|
mintName: '',
|
||||||
|
tokenBuys: [],
|
||||||
buyTokens: {
|
buyTokens: {
|
||||||
showDialog: false,
|
showDialog: false,
|
||||||
amount: 0,
|
amount: 0,
|
||||||
|
@ -713,9 +701,9 @@ page_container %}
|
||||||
formattedBalance: function () {
|
formattedBalance: function () {
|
||||||
return this.balance / 100
|
return this.balance / 100
|
||||||
},
|
},
|
||||||
tokenBuys: function() {
|
// tokenBuys: function() {
|
||||||
return []
|
// return []
|
||||||
},
|
// },
|
||||||
|
|
||||||
canPay: function () {
|
canPay: function () {
|
||||||
if (!this.parse.invoice) return false
|
if (!this.parse.invoice) return false
|
||||||
|
@ -973,8 +961,11 @@ page_container %}
|
||||||
`/cashu/api/v1/cashu/${this.mintId}/mint?amount=${this.buyTokens.amount}`
|
`/cashu/api/v1/cashu/${this.mintId}/mint?amount=${this.buyTokens.amount}`
|
||||||
)
|
)
|
||||||
console.log('### data', data)
|
console.log('### data', data)
|
||||||
|
|
||||||
this.buyTokens.bolt11 = data.pr
|
this.buyTokens.bolt11 = data.pr
|
||||||
this.buyTokens.hash = data.hash
|
this.buyTokens.hash = data.hash
|
||||||
|
this.tokenBuys.push({...this.buyTokens, date: new Date().toISOString()})
|
||||||
|
localStorage.setItem('cashu.tokenBuys', JSON.stringify(this.tokenBuys))
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
LNbits.utils.notifyApiError(error)
|
LNbits.utils.notifyApiError(error)
|
||||||
}
|
}
|
||||||
|
@ -1027,6 +1018,9 @@ page_container %}
|
||||||
} else if (this.$q.localStorage.getItem('cashu.name')) {
|
} else if (this.$q.localStorage.getItem('cashu.name')) {
|
||||||
this.mintName = this.$q.localStorage.getItem('cashu.name')
|
this.mintName = this.$q.localStorage.getItem('cashu.name')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.tokenBuys = JSON.parse(localStorage.getItem('cashu.tokenBuys') || '[]')
|
||||||
|
console.log('#### this.tokenBuys', this.tokenBuys)
|
||||||
console.log('#### this.mintId', this.mintId)
|
console.log('#### this.mintId', this.mintId)
|
||||||
console.log('#### this.mintName', this.mintName)
|
console.log('#### this.mintName', this.mintName)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue