From 65228afb876d4fcec36ceabd3e6bfc1ea6f15cee Mon Sep 17 00:00:00 2001
From: Florian Dold <florian.dold@gmail.com>
Date: Tue, 20 Feb 2018 09:33:17 +0100
Subject: render both string and JSON amounts correctly to HTML

---
 src/webex/renderHtml.tsx | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

(limited to 'src/webex/renderHtml.tsx')

diff --git a/src/webex/renderHtml.tsx b/src/webex/renderHtml.tsx
index 2e21932b0..e4686adee 100644
--- a/src/webex/renderHtml.tsx
+++ b/src/webex/renderHtml.tsx
@@ -48,12 +48,21 @@ import * as React from "react";
  * Render amount as HTML, which non-breaking space between
  * decimal value and currency.
  */
-export function renderAmount(amount: AmountJson) {
-  const x = amount.value + amount.fraction / Amounts.fractionalBase;
-  return <span>{x}&nbsp;{amount.currency}</span>;
+export function renderAmount(amount: AmountJson | string) {
+  let a;
+  if (typeof amount === "string") {
+    a = Amounts.parse(amount);
+  } else {
+    a = amount;
+  }
+  if (!a) {
+    return <span>(invalid amount)</span>;
+  }
+  const x = a.value + a.fraction / Amounts.fractionalBase;
+  return <span>{x}&nbsp;{a.currency}</span>;
 }
 
-export const AmountDisplay = ({amount}: {amount: AmountJson}) => renderAmount(amount);
+export const AmountDisplay = ({amount}: {amount: AmountJson | string}) => renderAmount(amount);
 
 
 /**
-- 
cgit v1.2.3

