gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] 02/02: moved out function creation from render


From: gnunet
Subject: [taler-wallet-core] 02/02: moved out function creation from render
Date: Mon, 12 Jul 2021 19:49:12 +0200

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository wallet-core.

commit 1527b6c5f01ed5c0ee1bd0c3163007c11f2d6bf0
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Mon Jul 12 14:47:59 2021 -0300

    moved out function creation from render
---
 .../src/components/ErrorMessage.tsx                |   3 +-
 .../src/popup/ProviderDetailPage.tsx               | 121 ++++++++++-----------
 2 files changed, 59 insertions(+), 65 deletions(-)

diff --git a/packages/taler-wallet-webextension/src/components/ErrorMessage.tsx 
b/packages/taler-wallet-webextension/src/components/ErrorMessage.tsx
index eaf01522..6bbdd26d 100644
--- a/packages/taler-wallet-webextension/src/components/ErrorMessage.tsx
+++ b/packages/taler-wallet-webextension/src/components/ErrorMessage.tsx
@@ -1,8 +1,9 @@
+import { VNode } from "preact";
 import { useState } from "preact/hooks";
 import arrowDown from '../../static/img/chevron-down.svg';
 import { ErrorBox } from "./styled";
 
-export function ErrorMessage({ title, description }: { title?: string; 
description?: string; }) {
+export function ErrorMessage({ title, description }: { title?: string|VNode; 
description?: string; }) {
   const [showErrorDetail, setShowErrorDetail] = useState(false);
   if (!title)
     return null;
diff --git 
a/packages/taler-wallet-webextension/src/popup/ProviderDetailPage.tsx 
b/packages/taler-wallet-webextension/src/popup/ProviderDetailPage.tsx
index 2482dee1..12567c2c 100644
--- a/packages/taler-wallet-webextension/src/popup/ProviderDetailPage.tsx
+++ b/packages/taler-wallet-webextension/src/popup/ProviderDetailPage.tsx
@@ -54,69 +54,6 @@ export interface ViewProps {
 }
 
 export function ProviderView({ info, onDelete, onSync, onBack, onExtend }: 
ViewProps): VNode {
-  function Error() {
-    if (info?.lastError) {
-      return <ErrorMessage title={info.lastError.hint} />
-      // <div class="errorbox" style={{ marginTop: 10 }} >
-      //   <div style={{ height: 0, textAlign: 'right', color: 'gray', 
fontSize: 'small' }}>last time tried {!info.lastAttemptedBackupTimestamp || 
info.lastAttemptedBackupTimestamp.t_ms === 'never' ? 'never' : format(new 
Date(info.lastAttemptedBackupTimestamp.t_ms), 'dd/MM/yyyy HH:mm:ss')}</div>
-      //   <p>{info.lastError.hint}</p>
-      // </div>
-      // </Fragment>
-    }
-    if (info?.backupProblem) {
-      switch (info.backupProblem.type) {
-        case "backup-conflicting-device":
-          return <div class="errorbox" style={{ marginTop: 10 }}>
-            <p>There is conflict with another backup from 
<b>{info.backupProblem.otherDeviceId}</b></p>
-          </div>
-        case "backup-unreadable":
-          return <div class="errorbox" style={{ marginTop: 10 }}>
-            <p>Backup is not readable</p>
-          </div>
-        default:
-          return <div class="errorbox" style={{ marginTop: 10 }}>
-            <p>Unknown backup problem: {JSON.stringify(info.backupProblem)}</p>
-          </div>
-      }
-    }
-    return null
-  }
-
-  function colorByStatus(status: ProviderPaymentType) {
-    switch (status) {
-      case ProviderPaymentType.InsufficientBalance:
-        return 'rgb(223, 117, 20)'
-      case ProviderPaymentType.Unpaid:
-        return 'rgb(202, 60, 60)'
-      case ProviderPaymentType.Paid:
-        return 'rgb(28, 184, 65)'
-      case ProviderPaymentType.Pending:
-        return 'gray'
-      case ProviderPaymentType.InsufficientBalance:
-        return 'rgb(202, 60, 60)'
-      case ProviderPaymentType.TermsChanged:
-        return 'rgb(202, 60, 60)'
-    }
-  }
-
-  function descriptionByStatus(status: ProviderPaymentStatus) {
-    switch (status.type) {
-      case ProviderPaymentType.InsufficientBalance:
-        return 'no enough balance to make the payment'
-      case ProviderPaymentType.Unpaid:
-        return 'not pay yet'
-      case ProviderPaymentType.Paid:
-      case ProviderPaymentType.TermsChanged:
-        if (status.paidUntil.t_ms === 'never') {
-          return 'service paid.'
-        } else {
-          return `service paid until ${format(status.paidUntil.t_ms, 
'yyyy/MM/dd HH:mm:ss')}`
-        }
-      case ProviderPaymentType.Pending:
-        return ''
-    }
-  }
-
   return (
     <PopupBox>
       <header>
@@ -125,7 +62,7 @@ export function ProviderView({ info, onDelete, onSync, 
onBack, onExtend }: ViewP
         {info.terms && <div>{info.terms.annualFee} / year</div>}
       </header>
       <section>
-        <Error />
+        <Error info={info} />
         <h3>{info.syncProviderBaseUrl}</h3>
         <p>{daysSince(info?.lastSuccessfulBackupTimestamp)} </p>
         <p>{descriptionByStatus(info.paymentStatus)}</p>
@@ -193,3 +130,59 @@ function daysSince(d?: Timestamp) {
   })
   return `synced ${str} ago`
 }
+
+function Error({ info }: { info: ProviderInfo }) {
+  if (info.lastError) {
+    return <ErrorMessage title={info.lastError.hint} />
+  }
+  if (info.backupProblem) {
+    switch (info.backupProblem.type) {
+      case "backup-conflicting-device":
+        return <ErrorMessage title={<Fragment>
+          There is conflict with another backup from 
<b>{info.backupProblem.otherDeviceId}</b>
+        </Fragment>} />
+      case "backup-unreadable":
+        return <ErrorMessage title="Backup is not readable" />
+      default:
+        return <ErrorMessage title={<Fragment>
+          Unknown backup problem: {JSON.stringify(info.backupProblem)}
+        </Fragment>} />
+    }
+  }
+  return null
+}
+
+function colorByStatus(status: ProviderPaymentType) {
+  switch (status) {
+    case ProviderPaymentType.InsufficientBalance:
+      return 'rgb(223, 117, 20)'
+    case ProviderPaymentType.Unpaid:
+      return 'rgb(202, 60, 60)'
+    case ProviderPaymentType.Paid:
+      return 'rgb(28, 184, 65)'
+    case ProviderPaymentType.Pending:
+      return 'gray'
+    case ProviderPaymentType.InsufficientBalance:
+      return 'rgb(202, 60, 60)'
+    case ProviderPaymentType.TermsChanged:
+      return 'rgb(202, 60, 60)'
+  }
+}
+
+function descriptionByStatus(status: ProviderPaymentStatus) {
+  switch (status.type) {
+    case ProviderPaymentType.InsufficientBalance:
+      return 'no enough balance to make the payment'
+    case ProviderPaymentType.Unpaid:
+      return 'not pay yet'
+    case ProviderPaymentType.Paid:
+    case ProviderPaymentType.TermsChanged:
+      if (status.paidUntil.t_ms === 'never') {
+        return 'service paid.'
+      } else {
+        return `service paid until ${format(status.paidUntil.t_ms, 'yyyy/MM/dd 
HH:mm:ss')}`
+      }
+    case ProviderPaymentType.Pending:
+      return ''
+  }
+}

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]