From 2cf33705c8ef95e04144b2a77cd4a79189136199 Mon Sep 17 00:00:00 2001
From: Florian Dold <florian.dold@gmail.com>
Date: Sun, 4 Jun 2017 20:16:09 +0200
Subject: warn about incompatible versions on withdraw

---
 src/webex/pages/confirm-create-reserve.tsx | 34 +++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)

(limited to 'src/webex/pages/confirm-create-reserve.tsx')

diff --git a/src/webex/pages/confirm-create-reserve.tsx b/src/webex/pages/confirm-create-reserve.tsx
index ca8517a25..f8f53510c 100644
--- a/src/webex/pages/confirm-create-reserve.tsx
+++ b/src/webex/pages/confirm-create-reserve.tsx
@@ -414,10 +414,41 @@ class ExchangeSelection extends ImplicitStateComponent<ExchangeSelectionProps> {
     );
   }
 
+  renderUpdateStatus() {
+    const rci = this.reserveCreationInfo();
+    if (!rci) {
+      return null;
+    }
+    if (!rci.versionMatch) {
+      return null;
+    }
+    if (rci.versionMatch.compatible) {
+      return null;
+    }
+    if (rci.versionMatch.currentCmp == -1) {
+      return (
+        <p className="errorbox">
+          Your wallet might be outdated.  The exchange has a higher, incompatible
+          protocol version.
+        </p>
+      );
+    }
+    if (rci.versionMatch.currentCmp == 1) {
+      return (
+        <p className="errorbox">
+          The chosen exchange might be outdated.  The exchange has a lower, incompatible
+          protocol version.
+        </p>
+      );
+    }
+    throw Error("not reached");
+  }
+
   renderConfirm() {
     return (
       <div>
         {this.renderFeeStatus()}
+        <p>
         <button className="pure-button button-success"
                 disabled={this.reserveCreationInfo() === null}
                 onClick={() => this.confirmReserve()}>
@@ -428,7 +459,8 @@ class ExchangeSelection extends ImplicitStateComponent<ExchangeSelectionProps> {
                 onClick={() => this.selectingExchange(true)}>
           {i18n.str`Change Exchange Provider`}
         </button>
-        <br/>
+        </p>
+        {this.renderUpdateStatus()}
         <Collapsible initiallyCollapsed={true} title="Fee and Spending Details">
           {renderReserveCreationDetails(this.reserveCreationInfo())}
         </Collapsible>
-- 
cgit v1.2.3

