From 8230c99c8060f39fc7cf8212bcda009d1d2a9894 Mon Sep 17 00:00:00 2001 From: Kieran Date: Thu, 12 Jan 2023 09:57:35 +0000 Subject: [PATCH] Bug fix pay invoice flow --- src/element/Invoice.js | 20 ++++++++++---------- src/element/LNURLTip.js | 35 +++++++++++++++++------------------ src/element/Modal.js | 4 ++-- 3 files changed, 29 insertions(+), 30 deletions(-) diff --git a/src/element/Invoice.js b/src/element/Invoice.js index 60c1be22..10157236 100644 --- a/src/element/Invoice.js +++ b/src/element/Invoice.js @@ -37,14 +37,14 @@ export default function Invoice(props) { <>

⚡️ Invoice for {info?.amount?.toLocaleString()} sats

{info?.description}

- {showInvoice && } + setShowInvoice(false)} /> ) } else { return ( <> -

⚡️ Invoice for {info?.amount?.toLocaleString()} sats

- {showInvoice && } +

⚡️ Invoice for {info?.amount?.toLocaleString()} sats

+ setShowInvoice(false)} /> ) } @@ -52,14 +52,14 @@ export default function Invoice(props) { return ( <> -
-
- {header()} - {info?.expire ? {info?.expired ? "Expired" : "Expires"} : null} -
+
+
+ {header()} + {info?.expire ? {info?.expired ? "Expired" : "Expires"} : null} +
- {info?.expired ?
Expired
:
setShowInvoice(true)}>Pay
} -
+ {info?.expired ?
Expired
:
{ e.stopPropagation(); setShowInvoice(true); }}>Pay
} +
) diff --git a/src/element/LNURLTip.js b/src/element/LNURLTip.js index e94711cc..e5bf3ae5 100644 --- a/src/element/LNURLTip.js +++ b/src/element/LNURLTip.js @@ -9,25 +9,24 @@ export default function LNURLTip(props) { const onClose = props.onClose || (() => { }); const service = props.svc; const show = props.show || false; - const lnInvoice = props.lnInvoice const amounts = [50, 100, 500, 1_000, 5_000, 10_000]; const [payService, setPayService] = useState(""); const [amount, setAmount] = useState(0); const [customAmount, setCustomAmount] = useState(0); - const [invoice, setInvoice] = useState(""); + const [invoice, setInvoice] = useState(null); const [comment, setComment] = useState(""); const [error, setError] = useState(""); const [success, setSuccess] = useState(null); useEffect(() => { - if (show && !lnInvoice) { + if (show && invoice === null) { loadService() .then(a => setPayService(a)) .catch(() => setError("Failed to load LNURL service")); } else { setPayService(""); setError(""); - setInvoice(""); + setInvoice(props.invoice ? { pr: props.invoice } : null); setAmount(0); setComment(""); setSuccess(null); @@ -58,7 +57,7 @@ export default function LNURLTip(props) { const selectAmount = (a) => { setError(""); - setInvoice(""); + setInvoice(null); setAmount(a); }; @@ -165,25 +164,25 @@ export default function LNURLTip(props) { } function payInvoice() { - if(success) return null; - const pr = lnInvoice ? lnInvoice : invoice.pr; + if (success) return null; + const pr = invoice?.pr; return ( <>
{pr && ( - <> -
- -
-
-
window.open(`lightning:${pr}`)}> - Open Wallet + <> +
+
-
{webLn()}
-
- +
+
window.open(`lightning:${pr}`)}> + Open Wallet +
+
{webLn()}
+
+ )}
@@ -192,7 +191,7 @@ export default function LNURLTip(props) { } function successAction() { - if(!success) return null; + if (!success) return null; return ( <>

{success?.description ?? "Paid!"}

diff --git a/src/element/Modal.js b/src/element/Modal.js index 034e6ece..7a3baf1b 100644 --- a/src/element/Modal.js +++ b/src/element/Modal.js @@ -2,7 +2,7 @@ import "./Modal.css"; import { useEffect } from "react" export default function Modal(props) { - const onClose = props.onClose || (() => {}); + const onClose = props.onClose || (() => { }); useEffect(() => { document.body.classList.add("scroll-lock"); @@ -10,7 +10,7 @@ export default function Modal(props) { }, []); return ( -
onClose(e)}> +
{ e.stopPropagation(); onClose(e); }}> {props.children}
)