gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated (c2a982e57 -> c54476c40)


From: gnunet
Subject: [taler-wallet-core] branch master updated (c2a982e57 -> c54476c40)
Date: Wed, 07 Dec 2022 22:46:40 +0100

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

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

    from c2a982e57 missing changes
     new 4fbc22b94 pretty
     new c54476c40 fix: username regex and error message word-break

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 packages/demobank-ui/src/context/backend.ts        | 12 ++++--
 packages/demobank-ui/src/hooks/backend.ts          | 31 ++++++++------
 .../src/pages/home/PaytoWireTransferForm.tsx       | 50 +++++++++++-----------
 .../src/pages/home/RegistrationPage.tsx            | 14 +++++-
 .../src/pages/home/WalletWithdrawForm.tsx          | 48 +++++++++++----------
 packages/demobank-ui/src/scss/bank.scss            |  8 ++--
 packages/demobank-ui/src/utils.ts                  |  7 +--
 7 files changed, 96 insertions(+), 74 deletions(-)

diff --git a/packages/demobank-ui/src/context/backend.ts 
b/packages/demobank-ui/src/context/backend.ts
index b9b7f8527..1c40506c9 100644
--- a/packages/demobank-ui/src/context/backend.ts
+++ b/packages/demobank-ui/src/context/backend.ts
@@ -16,7 +16,11 @@
 
 import { ComponentChildren, createContext, h, VNode } from "preact";
 import { useContext } from "preact/hooks";
-import { BackendStateHandler, defaultState, useBackendState } from 
"../hooks/backend.js";
+import {
+  BackendStateHandler,
+  defaultState,
+  useBackendState,
+} from "../hooks/backend.js";
 
 /**
  *
@@ -28,10 +32,10 @@ export type Type = BackendStateHandler;
 const initial: Type = {
   state: defaultState,
   clear() {
-    null
+    null;
   },
   save(info) {
-    null
+    null;
   },
 };
 const Context = createContext<Type>(initial);
@@ -49,4 +53,4 @@ export const BackendStateProvider = ({
     value,
     children,
   });
-};
\ No newline at end of file
+};
diff --git a/packages/demobank-ui/src/hooks/backend.ts 
b/packages/demobank-ui/src/hooks/backend.ts
index 967d5ee85..babdcd830 100644
--- a/packages/demobank-ui/src/hooks/backend.ts
+++ b/packages/demobank-ui/src/hooks/backend.ts
@@ -4,7 +4,7 @@ import { hooks } from "@gnu-taler/web-util/lib/index.browser";
  * Has the information to reach and
  * authenticate at the bank's backend.
  */
-export type BackendState = LoggedIn | LoggedOut
+export type BackendState = LoggedIn | LoggedOut;
 
 export interface BackendInfo {
   url: string;
@@ -13,16 +13,16 @@ export interface BackendInfo {
 }
 
 interface LoggedIn extends BackendInfo {
-  status: "loggedIn"
+  status: "loggedIn";
 }
 interface LoggedOut {
-  status: "loggedOut"
+  status: "loggedOut";
 }
 
-export const defaultState: BackendState = { status: "loggedOut" }
+export const defaultState: BackendState = { status: "loggedOut" };
 
 export interface BackendStateHandler {
-  state: BackendState,
+  state: BackendState;
   clear(): void;
   save(info: BackendInfo): void;
 }
@@ -32,24 +32,27 @@ export interface BackendStateHandler {
  * base URL.
  */
 export function useBackendState(): BackendStateHandler {
-  const [value, update] = hooks.useLocalStorage("backend-state", 
JSON.stringify(defaultState));
+  const [value, update] = hooks.useLocalStorage(
+    "backend-state",
+    JSON.stringify(defaultState),
+  );
   // const parsed = value !== undefined ? JSON.parse(value) : value;
-  let parsed
+  let parsed;
   try {
-    parsed = JSON.parse(value!)
+    parsed = JSON.parse(value!);
   } catch {
-    parsed = undefined
+    parsed = undefined;
   }
-  const state: BackendState = !parsed?.status ? defaultState : parsed
+  const state: BackendState = !parsed?.status ? defaultState : parsed;
 
   return {
     state,
     clear() {
-      update(JSON.stringify(defaultState))
+      update(JSON.stringify(defaultState));
     },
     save(info) {
-      const nextState: BackendState = { status: "loggedIn", ...info }
-      update(JSON.stringify(nextState))
+      const nextState: BackendState = { status: "loggedIn", ...info };
+      update(JSON.stringify(nextState));
     },
-  }
+  };
 }
diff --git a/packages/demobank-ui/src/pages/home/PaytoWireTransferForm.tsx 
b/packages/demobank-ui/src/pages/home/PaytoWireTransferForm.tsx
index bfb2f2fef..6abcebcd8 100644
--- a/packages/demobank-ui/src/pages/home/PaytoWireTransferForm.tsx
+++ b/packages/demobank-ui/src/pages/home/PaytoWireTransferForm.tsx
@@ -118,30 +118,32 @@ export function PaytoWireTransferForm({
             />
             <br />
             <label for="amount">{i18n.str`Amount:`}</label>&nbsp;
-            <input
-              type="text"
-              readonly
-              class="currency-indicator"
-              size={currency?.length}
-              maxLength={currency?.length}
-              tabIndex={-1}
-              value={currency}
-            />
-            &nbsp;
-            <input
-              type="number"
-              name="amount"
-              id="amount"
-              placeholder="amount"
-              required
-              value={submitData?.amount ?? ""}
-              onInput={(e): void => {
-                submitDataSetter((submitData) => ({
-                  ...submitData,
-                  amount: e.currentTarget.value,
-                }));
-              }}
-            />
+            <div style={{ width: "max-content" }}>
+              <input
+                type="text"
+                readonly
+                class="currency-indicator"
+                size={currency?.length}
+                maxLength={currency?.length}
+                tabIndex={-1}
+                value={currency}
+              />
+              &nbsp;
+              <input
+                type="number"
+                name="amount"
+                id="amount"
+                placeholder="amount"
+                required
+                value={submitData?.amount ?? ""}
+                onInput={(e): void => {
+                  submitDataSetter((submitData) => ({
+                    ...submitData,
+                    amount: e.currentTarget.value,
+                  }));
+                }}
+              />
+            </div>
             <ShowInputErrorLabel
               message={errorsWire?.amount}
               isDirty={submitData?.amount !== undefined}
diff --git a/packages/demobank-ui/src/pages/home/RegistrationPage.tsx 
b/packages/demobank-ui/src/pages/home/RegistrationPage.tsx
index c91eef7a0..ecec5793c 100644
--- a/packages/demobank-ui/src/pages/home/RegistrationPage.tsx
+++ b/packages/demobank-ui/src/pages/home/RegistrationPage.tsx
@@ -44,6 +44,8 @@ export function RegistrationPage(): VNode {
   );
 }
 
+const usernameRegex = /^[a-z][a-zA-Z0-9]+$/;
+
 /**
  * Collect and submit registration data.
  */
@@ -57,8 +59,16 @@ function RegistrationForm(): VNode {
   const { i18n } = useTranslationContext();
 
   const errors = undefinedIfEmpty({
-    username: !username ? i18n.str`Missing username` : undefined,
-    password: !password ? i18n.str`Missing password` : undefined,
+    username: !username
+      ? i18n.str`Missing username`
+      : !usernameRegex.test(username)
+      ? i18n.str`Use only letter and numbers starting with a lower case letter`
+      : undefined,
+    password: !password
+      ? i18n.str`Missing password`
+      : !usernameRegex.test(password)
+      ? i18n.str`Use only letter and numbers starting with a lower case letter`
+      : undefined,
     repeatPassword: !repeatPassword
       ? i18n.str`Missing password`
       : repeatPassword !== password
diff --git a/packages/demobank-ui/src/pages/home/WalletWithdrawForm.tsx 
b/packages/demobank-ui/src/pages/home/WalletWithdrawForm.tsx
index 29fc1eb6a..bc3880ee2 100644
--- a/packages/demobank-ui/src/pages/home/WalletWithdrawForm.tsx
+++ b/packages/demobank-ui/src/pages/home/WalletWithdrawForm.tsx
@@ -46,29 +46,31 @@ export function WalletWithdrawForm({
       <p>
         <label for="withdraw-amount">{i18n.str`Amount to withdraw:`}</label>
         &nbsp;
-        <input
-          type="text"
-          readonly
-          class="currency-indicator"
-          size={currency?.length ?? 5}
-          maxLength={currency?.length}
-          tabIndex={-1}
-          value={currency}
-        />
-        &nbsp;
-        <input
-          type="number"
-          ref={ref}
-          id="withdraw-amount"
-          name="withdraw-amount"
-          value={submitAmount}
-          onChange={(e): void => {
-            // FIXME: validate using 'parseAmount()',
-            // deactivate submit button as long as
-            // amount is not valid
-            submitAmount = e.currentTarget.value;
-          }}
-        />
+        <div style={{ width: "max-content" }}>
+          <input
+            type="text"
+            readonly
+            class="currency-indicator"
+            size={currency?.length ?? 5}
+            maxLength={currency?.length}
+            tabIndex={-1}
+            value={currency}
+          />
+          &nbsp;
+          <input
+            type="number"
+            ref={ref}
+            id="withdraw-amount"
+            name="withdraw-amount"
+            value={submitAmount}
+            onChange={(e): void => {
+              // FIXME: validate using 'parseAmount()',
+              // deactivate submit button as long as
+              // amount is not valid
+              submitAmount = e.currentTarget.value;
+            }}
+          />
+        </div>
       </p>
       <p>
         <div>
diff --git a/packages/demobank-ui/src/scss/bank.scss 
b/packages/demobank-ui/src/scss/bank.scss
index dba2ee3d3..e8a4d664c 100644
--- a/packages/demobank-ui/src/scss/bank.scss
+++ b/packages/demobank-ui/src/scss/bank.scss
@@ -88,7 +88,7 @@ input[type="number"]::-webkit-inner-spin-button {
   display: none;
   padding: 8px 16px;
   border: 2px solid #c1c1c1;
-  width: max-content;
+  width: min-content;
 }
 
 .tabcontent.active {
@@ -168,7 +168,7 @@ input {
   margin-right: auto;
   padding: 16px 16px;
   border-radius: 8px;
-  width: max-content;
+  width: min-content;
   .formFieldLabel {
     margin: 2px 2px;
   }
@@ -210,7 +210,7 @@ input {
   margin-right: auto;
   padding: 16px 16px;
   border-radius: 8px;
-  width: max-content;
+  width: min-content;
   .formFieldLabel {
     margin: 2px 2px;
   }
@@ -244,7 +244,7 @@ input {
   margin-right: auto;
   padding: 16px 16px;
   border-radius: 8px;
-  width: max-content;
+  width: min-content;
   .formFieldLabel {
     margin: 2px 2px;
   }
diff --git a/packages/demobank-ui/src/utils.ts 
b/packages/demobank-ui/src/utils.ts
index 223dbe707..f769bca9a 100644
--- a/packages/demobank-ui/src/utils.ts
+++ b/packages/demobank-ui/src/utils.ts
@@ -6,7 +6,9 @@ import { canonicalizeBaseUrl } from "@gnu-taler/taler-util";
  * the input is invalid, the valid amount otherwise.
  */
 const amountRegex = /^[0-9]+(.[0-9]+)?$/;
-export function validateAmount(maybeAmount: string | undefined): string | 
undefined {
+export function validateAmount(
+  maybeAmount: string | undefined,
+): string | undefined {
   if (!maybeAmount || !amountRegex.test(maybeAmount)) {
     return;
   }
@@ -29,8 +31,7 @@ const maybeRootPath = 
"https://bank.demo.taler.net/demobanks/default/";;
 
 export function getBankBackendBaseUrl(): string {
   const overrideUrl = localStorage.getItem("bank-base-url");
-  return canonicalizeBaseUrl(overrideUrl ? overrideUrl : maybeRootPath)
-
+  return canonicalizeBaseUrl(overrideUrl ? overrideUrl : maybeRootPath);
 }
 
 export function undefinedIfEmpty<T extends object>(obj: T): T | undefined {

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