From ae8a00527168b13aa59ddc2fbd1f88a0f1e2669c Mon Sep 17 00:00:00 2001
From: Florian Dold <florian.dold@gmail.com>
Date: Fri, 1 Nov 2019 18:39:23 +0100
Subject: protocol changes

---
 src/webex/pages/pay.tsx | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

(limited to 'src/webex/pages/pay.tsx')

diff --git a/src/webex/pages/pay.tsx b/src/webex/pages/pay.tsx
index 579688db3..7f2a174b7 100644
--- a/src/webex/pages/pay.tsx
+++ b/src/webex/pages/pay.tsx
@@ -53,6 +53,11 @@ function TalerPayDialog({ talerPayUri }: { talerPayUri: string }) {
     return <span>Loading payment information ...</span>;
   }
 
+  let insufficientBalance = false;
+  if (payStatus.status == "insufficient-balance") {
+    insufficientBalance = true;
+  }
+
   if (payStatus.status === "error") {
     return <span>Error: {payStatus.error}</span>;
   }
@@ -93,7 +98,7 @@ function TalerPayDialog({ talerPayUri }: { talerPayUri: string }) {
 
   const doPayment = async () => {
     if (payStatus.status !== "payment-possible") {
-      throw Error("invalid state");
+      throw Error(`invalid state: ${payStatus.status}`);
     }
     const proposalId = payStatus.proposalId;
     setNumTries(numTries + 1);
@@ -128,6 +133,12 @@ function TalerPayDialog({ talerPayUri }: { talerPayUri: string }) {
         )}
       </p>
 
+      {insufficientBalance ? (
+        <div>
+          <p style={{color: "red", fontWeight: "bold"}}>Unable to pay: Your balance is insufficient.</p>
+        </div>
+      ) : null}
+
       {payErrMsg ? (
         <div>
           <p>Payment failed: {payErrMsg}</p>
@@ -142,6 +153,7 @@ function TalerPayDialog({ talerPayUri }: { talerPayUri: string }) {
         <div>
           <ProgressButton
             loading={loading}
+            disabled={insufficientBalance}
             onClick={() => doPayment()}>
             {i18n.str`Confirm payment`}
           </ProgressButton>
-- 
cgit v1.2.3

