From 36af425c1b05f856d32974faacec3eda876a4f2f Mon Sep 17 00:00:00 2001 From: Ben Arc Date: Mon, 16 Aug 2021 07:15:59 +0100 Subject: [PATCH] Changed back to polling Once a stable listener alternative is production ready it can be added back --- .../lnticket/templates/lnticket/display.html | 59 ++++++++----------- .../lnticket/templates/lnticket/index.html | 4 +- 2 files changed, 26 insertions(+), 37 deletions(-) diff --git a/lnbits/extensions/lnticket/templates/lnticket/display.html b/lnbits/extensions/lnticket/templates/lnticket/display.html index d1ba65248..bb59b6827 100644 --- a/lnbits/extensions/lnticket/templates/lnticket/display.html +++ b/lnbits/extensions/lnticket/templates/lnticket/display.html @@ -103,7 +103,9 @@ name: '', email: '', text: '' - } + }, + dismissMsg: null, + paymentChecker: null }, receive: { show: false, @@ -143,39 +145,9 @@ this.formDialog.data.email = '' this.formDialog.data.text = '' }, - - closeReceiveDialog: function () { - var checker = this.startPaymentNotifier - dismissMsg() - - setTimeout(function () {}, 10000) - }, - startPaymentNotifier() { - this.cancelListener() - - this.cancelListener = LNbits.events.onInvoicePaid( - this.wallet, - payment => { - this.receive = { - show: false, - status: 'complete', - paymentReq: null - } - dismissMsg() - - this.formDialog.data.name = '' - this.formDialog.data.email = '' - this.formDialog.data.text = '' - this.$q.notify({ - type: 'positive', - message: 'Sent, thank you!', - icon: 'thumb_up' - }) - } - ) - }, Invoice: function () { var self = this + var dialog = this.formDialog axios .post('/lnticket/api/v1/tickets/{{ form_id }}', { form: '{{ form_id }}', @@ -188,16 +160,34 @@ self.paymentReq = response.data.payment_request self.paymentCheck = response.data.payment_hash - dismissMsg = self.$q.notify({ + dialog.dismissMsg = self.$q.notify({ timeout: 0, message: 'Waiting for payment...' }) - self.receive = { show: true, status: 'pending', paymentReq: self.paymentReq } + dialog.paymentChecker = setInterval(function () { + axios + .get('/lnticket/api/v1/tickets/' + response.data.payment_hash) + .then(function (res) { + if (res.data.paid) { + clearInterval(dialog.paymentChecker) + dialog.dismissMsg() + self.receive.show = false + self.formDialog.data.name = '' + self.formDialog.data.email = '' + self.formDialog.data.text = '' + self.$q.notify({ + type: 'positive', + message: 'Sats received, thanks!', + icon: 'thumb_up' + }) + } + }) + }, 2000) }) .catch(function (error) { LNbits.utils.notifyApiError(error) @@ -206,7 +196,6 @@ }, created() { this.wallet.inkey = '{{form_wallet}}' - this.startPaymentNotifier() } }) diff --git a/lnbits/extensions/lnticket/templates/lnticket/index.html b/lnbits/extensions/lnticket/templates/lnticket/index.html index 1f2d42ec7..d8fb3f8a7 100644 --- a/lnbits/extensions/lnticket/templates/lnticket/index.html +++ b/lnbits/extensions/lnticket/templates/lnticket/index.html @@ -325,9 +325,9 @@ computed: { flatRate: function () { if (this.formDialog.data.flatrate) { - return 'Charge per word' - } else { return 'Charge flat rate' + } else { + return 'Charge per word' } } },