gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: add invoice|transfer created


From: gnunet
Subject: [taler-wallet-core] branch master updated: add invoice|transfer created view
Date: Thu, 01 Sep 2022 15:03:31 +0200

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

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

The following commit(s) were added to refs/heads/master by this push:
     new d6a172c4 add invoice|transfer created view
d6a172c4 is described below

commit d6a172c4a00b615dce31630bf65e6d62b30f608e
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Thu Sep 1 10:03:23 2022 -0300

    add invoice|transfer created view
---
 .../src/cta/InvoiceCreate/index.ts                 | 16 ++++-----
 .../src/cta/InvoiceCreate/state.ts                 | 19 +++++------
 .../src/cta/InvoiceCreate/stories.tsx              |  8 ++---
 .../src/cta/InvoiceCreate/views.tsx                | 39 +++++++++++-----------
 .../src/cta/TransferCreate/index.ts                | 14 ++++----
 .../src/cta/TransferCreate/state.ts                | 15 ++++-----
 .../src/cta/TransferCreate/stories.tsx             |  8 ++---
 .../src/cta/TransferCreate/views.tsx               | 39 +++++++++++-----------
 8 files changed, 78 insertions(+), 80 deletions(-)

diff --git a/packages/taler-wallet-webextension/src/cta/InvoiceCreate/index.ts 
b/packages/taler-wallet-webextension/src/cta/InvoiceCreate/index.ts
index 0ef341fa..0eefb209 100644
--- a/packages/taler-wallet-webextension/src/cta/InvoiceCreate/index.ts
+++ b/packages/taler-wallet-webextension/src/cta/InvoiceCreate/index.ts
@@ -17,11 +17,11 @@
 import { Loading } from "../../components/Loading.js";
 import { HookError } from "../../hooks/useAsyncAsHook.js";
 import { compose, StateViewMap } from "../../utils/index.js";
-import { LoadingUriView, ReadyView, ShowQrView } from "./views.js";
+import { LoadingUriView, ReadyView, CreatedView } from "./views.js";
 import * as wxApi from "../../wxApi.js";
 import { useComponentState } from "./state.js";
 import { AmountJson, TalerErrorDetail } from "@gnu-taler/taler-util";
-import { ButtonHandler, SelectFieldHandler, TextFieldHandler } from 
"../../mui/handlers.js";
+import { ButtonHandler, TextFieldHandler } from "../../mui/handlers.js";
 
 export interface Props {
   amount: string;
@@ -31,7 +31,7 @@ export interface Props {
 export type State =
   | State.Loading
   | State.LoadingUriError
-  | State.ShowQr
+  | State.Created
   | State.Ready;
 
 export namespace State {
@@ -50,14 +50,14 @@ export namespace State {
     error: undefined;
     cancel: ButtonHandler;
   }
-  export interface ShowQr extends BaseInfo {
-    status: "show-qr";
+  export interface Created extends BaseInfo {
+    status: "created";
     talerUri: string;
+    copyToClipboard: ButtonHandler;
   }
   export interface Ready extends BaseInfo {
     status: "ready";
-    showQr: ButtonHandler;
-    copyToClipboard: ButtonHandler;
+    create: ButtonHandler;
     subject: TextFieldHandler;
     toBeReceived: AmountJson,
     chosenAmount: AmountJson,
@@ -71,7 +71,7 @@ export namespace State {
 const viewMapping: StateViewMap<State> = {
   loading: Loading,
   "loading-uri": LoadingUriView,
-  "show-qr": ShowQrView,
+  "created": CreatedView,
   "ready": ReadyView,
 };
 
diff --git a/packages/taler-wallet-webextension/src/cta/InvoiceCreate/state.ts 
b/packages/taler-wallet-webextension/src/cta/InvoiceCreate/state.ts
index f6a0847b..804d216e 100644
--- a/packages/taler-wallet-webextension/src/cta/InvoiceCreate/state.ts
+++ b/packages/taler-wallet-webextension/src/cta/InvoiceCreate/state.ts
@@ -50,14 +50,17 @@ export function useComponentState(
 
   if (talerUri) {
     return {
-      status: "show-qr",
+      status: "created",
       talerUri,
       error: undefined,
       cancel: {
         onClick: onClose
-      }
-      // chosenAmount: amount,
-      // toBeReceived: amount,
+      },
+      copyToClipboard: {
+        onClick: async () => {
+          navigator.clipboard.writeText(talerUri);
+        }
+      },
     }
   }
 
@@ -95,13 +98,7 @@ export function useComponentState(
     },
     invalid: !subject || Amounts.isZero(amount),
     exchangeUrl: selected.exchangeBaseUrl,
-    copyToClipboard: {
-      onClick: async () => {
-        const uri = await accept();
-        navigator.clipboard.writeText(uri || "");
-      }
-    },
-    showQr: {
+    create: {
       onClick: async () => {
         const uri = await accept();
         setTalerUri(uri)
diff --git 
a/packages/taler-wallet-webextension/src/cta/InvoiceCreate/stories.tsx 
b/packages/taler-wallet-webextension/src/cta/InvoiceCreate/stories.tsx
index 970b51b5..0adc29e7 100644
--- a/packages/taler-wallet-webextension/src/cta/InvoiceCreate/stories.tsx
+++ b/packages/taler-wallet-webextension/src/cta/InvoiceCreate/stories.tsx
@@ -20,16 +20,17 @@
  */
 
 import { createExample } from "../../test-utils.js";
-import { ReadyView, ShowQrView } from "./views.js";
+import { ReadyView, CreatedView } from "./views.js";
 
 export default {
   title: "wallet/invoice create",
 };
 
-export const ShowQr = createExample(ShowQrView, {
+export const ShowQr = createExample(CreatedView, {
   talerUri:
     
"taler://pay-pull/exchange.taler.ar/HS585JK0QCXHJ8Z8QWZA3EBAY5WY7XNC1RR2MHJXSH2Z4WP0YPJ0",
   cancel: {},
+  copyToClipboard: {},
 });
 
 export const Ready = createExample(ReadyView, {
@@ -51,6 +52,5 @@ export const Ready = createExample(ReadyView, {
       null;
     },
   },
-  copyToClipboard: {},
-  showQr: {},
+  create: {},
 });
diff --git a/packages/taler-wallet-webextension/src/cta/InvoiceCreate/views.tsx 
b/packages/taler-wallet-webextension/src/cta/InvoiceCreate/views.tsx
index 3de36b6e..d3d2c68e 100644
--- a/packages/taler-wallet-webextension/src/cta/InvoiceCreate/views.tsx
+++ b/packages/taler-wallet-webextension/src/cta/InvoiceCreate/views.tsx
@@ -45,18 +45,26 @@ export function LoadingUriView({ error }: 
State.LoadingUriError): VNode {
   );
 }
 
-export function ShowQrView({ talerUri, cancel }: State.ShowQr): VNode {
+export function CreatedView({
+  talerUri,
+  copyToClipboard,
+  cancel,
+}: State.Created): VNode {
   const { i18n } = useTranslationContext();
   return (
     <WalletAction>
       <LogoHeader />
       <SubTitle>
-        <i18n.Translate>Digital invoice</i18n.Translate>
+        <i18n.Translate>Digital cash invoice</i18n.Translate>
       </SubTitle>
       <section>
-        <p>Scan this QR code with the wallet</p>
+        <p>Show this QR to pay the invoice</p>
         <QR text={talerUri} />
       </section>
+      <section>
+        or
+        <Button onClick={copyToClipboard.onClick}>Copy the invoice URI</Button>
+      </section>
       <section>
         <Link upperCased onClick={cancel.onClick}>
           <i18n.Translate>Close</i18n.Translate>
@@ -70,10 +78,9 @@ export function ReadyView({
   invalid,
   exchangeUrl,
   subject,
-  showQr,
   cancel,
   operationError,
-  copyToClipboard,
+  create,
   toBeReceived,
   chosenAmount,
 }: State.Ready): VNode {
@@ -142,20 +149,14 @@ export function ReadyView({
         />
       </section>
       <section>
-        <p>How do you want to send the invoice?</p>
-
-        <Grid item container columns={1} spacing={1}>
-          <Grid item xs={1}>
-            <Button disabled={invalid} onClick={copyToClipboard.onClick}>
-              Copy request URI to clipboard
-            </Button>
-          </Grid>
-          <Grid item xs={1}>
-            <Button disabled={invalid} onClick={showQr.onClick}>
-              Show QR
-            </Button>
-          </Grid>
-        </Grid>
+        <Button
+          disabled={invalid}
+          onClick={create.onClick}
+          variant="contained"
+          color="success"
+        >
+          Create
+        </Button>
       </section>
       <section>
         <Link upperCased onClick={cancel.onClick}>
diff --git a/packages/taler-wallet-webextension/src/cta/TransferCreate/index.ts 
b/packages/taler-wallet-webextension/src/cta/TransferCreate/index.ts
index ddd431c4..c23d42e1 100644
--- a/packages/taler-wallet-webextension/src/cta/TransferCreate/index.ts
+++ b/packages/taler-wallet-webextension/src/cta/TransferCreate/index.ts
@@ -21,7 +21,7 @@ import { ButtonHandler, TextFieldHandler } from 
"../../mui/handlers.js";
 import { compose, StateViewMap } from "../../utils/index.js";
 import * as wxApi from "../../wxApi.js";
 import { useComponentState } from "./state.js";
-import { LoadingUriView, ReadyView, ShowQrView } from "./views.js";
+import { LoadingUriView, ReadyView, CreatedView } from "./views.js";
 
 export interface Props {
   amount: string;
@@ -31,7 +31,7 @@ export interface Props {
 export type State =
   | State.Loading
   | State.LoadingUriError
-  | State.ShowQr
+  | State.Created
   | State.Ready;
 
 export namespace State {
@@ -50,15 +50,15 @@ export namespace State {
     error: undefined;
     cancel: ButtonHandler;
   }
-  export interface ShowQr extends BaseInfo {
-    status: "show-qr";
+  export interface Created extends BaseInfo {
+    status: "created";
     talerUri: string;
+    copyToClipboard: ButtonHandler;
   }
   export interface Ready extends BaseInfo {
     status: "ready";
-    showQr: ButtonHandler;
     invalid: boolean;
-    copyToClipboard: ButtonHandler;
+    create: ButtonHandler;
     toBeReceived: AmountJson,
     chosenAmount: AmountJson,
     subject: TextFieldHandler,
@@ -70,7 +70,7 @@ export namespace State {
 const viewMapping: StateViewMap<State> = {
   loading: Loading,
   "loading-uri": LoadingUriView,
-  "show-qr": ShowQrView,
+  "created": CreatedView,
   "ready": ReadyView,
 };
 
diff --git a/packages/taler-wallet-webextension/src/cta/TransferCreate/state.ts 
b/packages/taler-wallet-webextension/src/cta/TransferCreate/state.ts
index cee41b70..f11526c0 100644
--- a/packages/taler-wallet-webextension/src/cta/TransferCreate/state.ts
+++ b/packages/taler-wallet-webextension/src/cta/TransferCreate/state.ts
@@ -32,12 +32,17 @@ export function useComponentState(
 
   if (talerUri) {
     return {
-      status: "show-qr",
+      status: "created",
       talerUri,
       error: undefined,
       cancel: {
         onClick: onClose,
       },
+      copyToClipboard: {
+        onClick: async () => {
+          navigator.clipboard.writeText(talerUri);
+        }
+      },
     }
   }
 
@@ -71,13 +76,7 @@ export function useComponentState(
       value: subject,
       onInput: async (e) => setSubject(e)
     },
-    copyToClipboard: {
-      onClick: async () => {
-        const uri = await accept();
-        navigator.clipboard.writeText(uri || "");
-      }
-    },
-    showQr: {
+    create: {
       onClick: async () => {
         const uri = await accept();
         setTalerUri(uri)
diff --git 
a/packages/taler-wallet-webextension/src/cta/TransferCreate/stories.tsx 
b/packages/taler-wallet-webextension/src/cta/TransferCreate/stories.tsx
index be44ac8c..c6ce301a 100644
--- a/packages/taler-wallet-webextension/src/cta/TransferCreate/stories.tsx
+++ b/packages/taler-wallet-webextension/src/cta/TransferCreate/stories.tsx
@@ -20,16 +20,17 @@
  */
 
 import { createExample } from "../../test-utils.js";
-import { ReadyView, ShowQrView } from "./views.js";
+import { ReadyView, CreatedView } from "./views.js";
 
 export default {
   title: "wallet/transfer create",
 };
 
-export const ShowQr = createExample(ShowQrView, {
+export const ShowQr = createExample(CreatedView, {
   talerUri:
     
"taler://pay-push/exchange.taler.ar/HS585JK0QCXHJ8Z8QWZA3EBAY5WY7XNC1RR2MHJXSH2Z4WP0YPJ0",
   cancel: {},
+  copyToClipboard: {},
 });
 
 export const Ready = createExample(ReadyView, {
@@ -38,14 +39,13 @@ export const Ready = createExample(ReadyView, {
     value: 1,
     fraction: 0,
   },
+  create: {},
   cancel: {},
   toBeReceived: {
     currency: "ARS",
     value: 1,
     fraction: 0,
   },
-  copyToClipboard: {},
-  showQr: {},
   subject: {
     value: "the subject",
     onInput: async () => {
diff --git 
a/packages/taler-wallet-webextension/src/cta/TransferCreate/views.tsx 
b/packages/taler-wallet-webextension/src/cta/TransferCreate/views.tsx
index a585cbae..51121d4c 100644
--- a/packages/taler-wallet-webextension/src/cta/TransferCreate/views.tsx
+++ b/packages/taler-wallet-webextension/src/cta/TransferCreate/views.tsx
@@ -23,7 +23,6 @@ import { QR } from "../../components/QR.js";
 import { Link, SubTitle, WalletAction } from 
"../../components/styled/index.js";
 import { useTranslationContext } from "../../context/translation.js";
 import { Button } from "../../mui/Button.js";
-import { Grid } from "../../mui/Grid.js";
 import { TextField } from "../../mui/TextField.js";
 import { TransferDetails } from "../../wallet/Transaction.js";
 import { State } from "./index.js";
@@ -39,18 +38,26 @@ export function LoadingUriView({ error }: 
State.LoadingUriError): VNode {
   );
 }
 
-export function ShowQrView({ talerUri, cancel }: State.ShowQr): VNode {
+export function CreatedView({
+  talerUri,
+  copyToClipboard,
+  cancel,
+}: State.Created): VNode {
   const { i18n } = useTranslationContext();
   return (
     <WalletAction>
       <LogoHeader />
       <SubTitle>
-        <i18n.Translate>Digital invoice</i18n.Translate>
+        <i18n.Translate>Digital cash transfer</i18n.Translate>
       </SubTitle>
       <section>
-        <p>Scan this QR code with the wallet</p>
+        <p>Show this QR to receive the transfer</p>
         <QR text={talerUri} />
       </section>
+      <section>
+        or
+        <Button onClick={copyToClipboard.onClick}>Copy the transfer 
URI</Button>
+      </section>
       <section>
         <Link upperCased onClick={cancel.onClick}>
           <i18n.Translate>Close</i18n.Translate>
@@ -64,9 +71,8 @@ export function ReadyView({
   subject,
   toBeReceived,
   chosenAmount,
-  showQr,
+  create,
   operationError,
-  copyToClipboard,
   cancel,
   invalid,
 }: State.Ready): VNode {
@@ -111,19 +117,14 @@ export function ReadyView({
       </section>
       <section>
         <p>How do you want to transfer?</p>
-
-        <Grid item container columns={1} spacing={1}>
-          <Grid item xs={1}>
-            <Button disabled={invalid} onClick={copyToClipboard.onClick}>
-              Copy transfer URI to clipboard
-            </Button>
-          </Grid>
-          <Grid item xs={1}>
-            <Button disabled={invalid} onClick={showQr.onClick}>
-              Show QR
-            </Button>
-          </Grid>
-        </Grid>
+        <Button
+          disabled={invalid}
+          onClick={create.onClick}
+          variant="contained"
+          color="success"
+        >
+          Create
+        </Button>
       </section>
       <section>
         <section>

-- 
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]