gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: show an error message when th


From: gnunet
Subject: [taler-wallet-core] branch master updated: show an error message when the input has more than 21 chars
Date: Fri, 15 Apr 2022 18:08:37 +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 b3b1329a show an error message when the input has more than 21 chars
b3b1329a is described below

commit b3b1329acf9072e9a727b548d9d1b316ca396c33
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Fri Apr 15 13:07:03 2022 -0300

    show an error message when the input has more than 21 chars
---
 .../pages/home/authMethod/AuthMethodEmailSolve.tsx | 24 +++++++++++++++-------
 .../pages/home/authMethod/AuthMethodPostSolve.tsx  | 16 +++++++++++++--
 .../pages/home/authMethod/AuthMethodSmsSolve.tsx   | 16 +++++++++++++--
 packages/anastasis-webui/src/utils/index.tsx       |  1 +
 4 files changed, 46 insertions(+), 11 deletions(-)

diff --git 
a/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodEmailSolve.tsx 
b/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodEmailSolve.tsx
index d7b5f31f..2ec27b8f 100644
--- 
a/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodEmailSolve.tsx
+++ 
b/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodEmailSolve.tsx
@@ -17,14 +17,13 @@
 /**
  * Imports.
  */
-import {
-  ChallengeInfo,
-} from "@gnu-taler/anastasis-core";
+import { ChallengeInfo } from "@gnu-taler/anastasis-core";
 import { h, VNode } from "preact";
 import { useState } from "preact/hooks";
 import { AsyncButton } from "../../../components/AsyncButton";
 import { TextInput } from "../../../components/fields/TextInput";
 import { useAnastasisContext } from "../../../context/anastasis";
+import { useTranslator } from "../../../i18n";
 import { AnastasisClientFrame } from "../index";
 import { SolveOverviewFeedbackDisplay } from "../SolveScreen";
 import { shouldHideConfirm } from "./helpers";
@@ -48,12 +47,13 @@ export function AuthMethodEmailSolve({ id }: 
AuthMethodSolveProps): VNode {
       result += `-${unformatted.substring(8, 12)}`;
     }
     if (unformatted.length > 12) {
-      result += `-${unformatted.substring(12, 16)}`;
+      result += `-${unformatted.substring(12)}`;
     }
 
     _setAnswer(result);
   }
   const [expanded, setExpanded] = useState(false);
+  const i18n = useTranslator();
 
   const reducer = useAnastasisContext();
   if (!reducer) {
@@ -66,7 +66,7 @@ export function AuthMethodEmailSolve({ id }: 
AuthMethodSolveProps): VNode {
   if (reducer.currentReducerState?.reducer_type !== "recovery") {
     return (
       <AnastasisClientFrame hideNav title="Recovery problem">
-        <div>invalid state</div>
+        <div>invalid state, no recovery state</div>
       </AnastasisClientFrame>
     );
   }
@@ -84,7 +84,7 @@ export function AuthMethodEmailSolve({ id }: 
AuthMethodSolveProps): VNode {
   if (!reducer.currentReducerState.selected_challenge_uuid) {
     return (
       <AnastasisClientFrame hideNav title="Recovery problem">
-        <div>invalid state</div>
+        <div>invalid state, no challenge id</div>
         <div
           style={{
             marginTop: "2em",
@@ -122,6 +122,11 @@ export function AuthMethodEmailSolve({ id }: 
AuthMethodSolveProps): VNode {
     reducer?.back();
   }
 
+  const error =
+    answer.length > 21
+      ? i18n`The answer should not be greater than 21 characters.`
+      : undefined;
+
   return (
     <AnastasisClientFrame hideNav title="Email challenge">
       <SolveOverviewFeedbackDisplay feedback={feedback} />
@@ -160,6 +165,7 @@ export function AuthMethodEmailSolve({ id }: 
AuthMethodSolveProps): VNode {
         grabFocus
         onConfirm={onNext}
         bind={[answer, setAnswer]}
+        error={error}
         placeholder="A-12345-678-1234-5678"
       />
 
@@ -174,7 +180,11 @@ export function AuthMethodEmailSolve({ id }: 
AuthMethodSolveProps): VNode {
           Cancel
         </button>
         {!shouldHideConfirm(feedback) && (
-          <AsyncButton class="button is-info" onClick={onNext}>
+          <AsyncButton
+            class="button is-info"
+            onClick={onNext}
+            disabled={!!error}
+          >
             Confirm
           </AsyncButton>
         )}
diff --git 
a/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodPostSolve.tsx 
b/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodPostSolve.tsx
index 382ffa00..9766703b 100644
--- a/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodPostSolve.tsx
+++ b/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodPostSolve.tsx
@@ -7,6 +7,7 @@ import { useState } from "preact/hooks";
 import { AsyncButton } from "../../../components/AsyncButton";
 import { TextInput } from "../../../components/fields/TextInput";
 import { useAnastasisContext } from "../../../context/anastasis";
+import { useTranslator } from "../../../i18n";
 import { AnastasisClientFrame } from "../index";
 import { SolveOverviewFeedbackDisplay } from "../SolveScreen";
 import { shouldHideConfirm } from "./helpers";
@@ -30,11 +31,12 @@ export function AuthMethodPostSolve({ id }: 
AuthMethodSolveProps): VNode {
       result += `-${unformatted.substring(8, 12)}`;
     }
     if (unformatted.length > 12) {
-      result += `-${unformatted.substring(12, 16)}`;
+      result += `-${unformatted.substring(12)}`;
     }
 
     _setAnswer(result);
   }
+  const i18n = useTranslator();
 
   const reducer = useAnastasisContext();
   if (!reducer) {
@@ -103,6 +105,11 @@ export function AuthMethodPostSolve({ id }: 
AuthMethodSolveProps): VNode {
     reducer?.back();
   }
 
+  const error =
+    answer.length > 21
+      ? i18n`The answer should not be greater than 21 characters.`
+      : undefined;
+
   return (
     <AnastasisClientFrame hideNav title="Postal Challenge">
       <SolveOverviewFeedbackDisplay feedback={feedback} />
@@ -112,6 +119,7 @@ export function AuthMethodPostSolve({ id }: 
AuthMethodSolveProps): VNode {
         label="Answer"
         grabFocus
         placeholder="A-12345-678-1234-5678"
+        error={error}
         bind={[answer, setAnswer]}
       />
 
@@ -126,7 +134,11 @@ export function AuthMethodPostSolve({ id }: 
AuthMethodSolveProps): VNode {
           Cancel
         </button>
         {!shouldHideConfirm(feedback) && (
-          <AsyncButton class="button is-info" onClick={onNext}>
+          <AsyncButton
+            class="button is-info"
+            onClick={onNext}
+            disabled={!!error}
+          >
             Confirm
           </AsyncButton>
         )}
diff --git 
a/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodSmsSolve.tsx 
b/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodSmsSolve.tsx
index f3d304c7..041d9c12 100644
--- a/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodSmsSolve.tsx
+++ b/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodSmsSolve.tsx
@@ -7,6 +7,7 @@ import { useState } from "preact/hooks";
 import { AsyncButton } from "../../../components/AsyncButton";
 import { TextInput } from "../../../components/fields/TextInput";
 import { useAnastasisContext } from "../../../context/anastasis";
+import { useTranslator } from "../../../i18n";
 import { AnastasisClientFrame } from "../index";
 import { SolveOverviewFeedbackDisplay } from "../SolveScreen";
 import { shouldHideConfirm } from "./helpers";
@@ -30,11 +31,12 @@ export function AuthMethodSmsSolve({ id }: 
AuthMethodSolveProps): VNode {
       result += `-${unformatted.substring(8, 12)}`;
     }
     if (unformatted.length > 12) {
-      result += `-${unformatted.substring(12, 16)}`;
+      result += `-${unformatted.substring(12)}`;
     }
 
     _setAnswer(result);
   }
+  const i18n = useTranslator();
 
   const [expanded, setExpanded] = useState(false);
   const reducer = useAnastasisContext();
@@ -104,6 +106,11 @@ export function AuthMethodSmsSolve({ id }: 
AuthMethodSolveProps): VNode {
     reducer?.back();
   }
 
+  const error =
+    answer.length > 21
+      ? i18n`The answer should not be greater than 21 characters.`
+      : undefined;
+
   return (
     <AnastasisClientFrame hideNav title="SMS Challenge">
       <SolveOverviewFeedbackDisplay feedback={feedback} />
@@ -142,6 +149,7 @@ export function AuthMethodSmsSolve({ id }: 
AuthMethodSolveProps): VNode {
         grabFocus
         onConfirm={onNext}
         bind={[answer, setAnswer]}
+        error={error}
         placeholder="A-12345-678-1234-5678"
       />
 
@@ -156,7 +164,11 @@ export function AuthMethodSmsSolve({ id }: 
AuthMethodSolveProps): VNode {
           Cancel
         </button>
         {!shouldHideConfirm(feedback) && (
-          <AsyncButton class="button is-info" onClick={onNext}>
+          <AsyncButton
+            class="button is-info"
+            onClick={onNext}
+            disabled={!!error}
+          >
             Confirm
           </AsyncButton>
         )}
diff --git a/packages/anastasis-webui/src/utils/index.tsx 
b/packages/anastasis-webui/src/utils/index.tsx
index d2b64e31..4dace093 100644
--- a/packages/anastasis-webui/src/utils/index.tsx
+++ b/packages/anastasis-webui/src/utils/index.tsx
@@ -222,6 +222,7 @@ export const reducerStatesExample = {
   } as ReducerState,
   challengeSolving: {
     ...base,
+    reducer_type: "recovery",
     recovery_state: RecoveryStates.ChallengeSolving,
   } as ReducerStateRecovery,
   challengePaying: {

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