[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] 01/02: merchant fixes
From: |
gnunet |
Subject: |
[taler-wallet-core] 01/02: merchant fixes |
Date: |
Tue, 21 Nov 2023 04:40:13 +0100 |
This is an automated email from the git hooks/post-receive script.
sebasjm pushed a commit to branch master
in repository wallet-core.
commit 0f7a3337a4259c1c28e35c2ff116942f533f5189
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Mon Nov 20 23:33:37 2023 -0300
merchant fixes
---
.../merchant-backoffice-ui/src/Application.tsx | 4 +-
.../merchant-backoffice-ui/src/InstanceRoutes.tsx | 34 ++++++++---------
.../src/components/form/InputPaytoForm.tsx | 9 +++--
.../src/components/form/InputWithAddon.tsx | 11 +++---
.../src/components/menu/SideBar.tsx | 4 +-
.../src/components/menu/index.tsx | 12 +++---
packages/merchant-backoffice-ui/src/hooks/otp.ts | 2 +-
.../src/paths/instance/accounts/list/index.tsx | 2 +-
.../instance/accounts/update/Update.stories.tsx | 2 +-
.../paths/instance/orders/details/DetailPage.tsx | 16 ++++----
.../create/Create.stories.tsx | 2 +-
.../create/CreatePage.tsx | 44 +++++++---------------
.../create/CreatedSuccessfully.tsx | 0
.../{validators => otp_devices}/create/index.tsx | 0
.../list/List.stories.tsx | 2 +-
.../{validators => otp_devices}/list/ListPage.tsx | 0
.../{validators => otp_devices}/list/Table.tsx | 0
.../{validators => otp_devices}/list/index.tsx | 2 +-
.../update/Update.stories.tsx | 2 +-
.../update/UpdatePage.tsx | 44 ++++++++--------------
.../{validators => otp_devices}/update/index.tsx | 0
21 files changed, 82 insertions(+), 110 deletions(-)
diff --git a/packages/merchant-backoffice-ui/src/Application.tsx
b/packages/merchant-backoffice-ui/src/Application.tsx
index 82329974f..e832d3107 100644
--- a/packages/merchant-backoffice-ui/src/Application.tsx
+++ b/packages/merchant-backoffice-ui/src/Application.tsx
@@ -34,13 +34,11 @@ import {
NotificationCard
} from "./components/menu/index.js";
import {
- BackendContextProvider,
- useBackendContext,
+ BackendContextProvider
} from "./context/backend.js";
import { ConfigContextProvider } from "./context/config.js";
import { useBackendConfig } from "./hooks/backend.js";
import { strings } from "./i18n/strings.js";
-import { LoginPage } from "./paths/login/index.js";
export function Application(): VNode {
return (
diff --git a/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx
b/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx
index 5d33655ff..dcb3e21ea 100644
--- a/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx
+++ b/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx
@@ -62,9 +62,9 @@ import TemplateUpdatePage from
"./paths/instance/templates/update/index.js";
import WebhookCreatePage from "./paths/instance/webhooks/create/index.js";
import WebhookListPage from "./paths/instance/webhooks/list/index.js";
import WebhookUpdatePage from "./paths/instance/webhooks/update/index.js";
-import ValidatorCreatePage from "./paths/instance/validators/create/index.js";
-import ValidatorListPage from "./paths/instance/validators/list/index.js";
-import ValidatorUpdatePage from "./paths/instance/validators/update/index.js";
+import ValidatorCreatePage from "./paths/instance/otp_devices/create/index.js";
+import ValidatorListPage from "./paths/instance/otp_devices/list/index.js";
+import ValidatorUpdatePage from "./paths/instance/otp_devices/update/index.js";
import TransferCreatePage from "./paths/instance/transfers/create/index.js";
import TransferListPage from "./paths/instance/transfers/list/index.js";
import InstanceUpdatePage, {
@@ -114,9 +114,9 @@ export enum InstancePaths {
webhooks_update = "/webhooks/:tid/update",
webhooks_new = "/webhooks/new",
- validators_list = "/validators",
- validators_update = "/validators/:vid/update",
- validators_new = "/validators/new",
+ otp_devices_list = "/otp-devices",
+ otp_devices_update = "/otp-devices/:vid/update",
+ otp_devices_new = "/otp-devices/new",
interface = "/interface",
}
@@ -526,39 +526,39 @@ export function InstanceRoutes({
* Validator pages
*/}
<Route
- path={InstancePaths.validators_list}
+ path={InstancePaths.otp_devices_list}
component={ValidatorListPage}
onUnauthorized={LoginPageAccessDenied}
onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}
onLoadError={ServerErrorRedirectTo(InstancePaths.settings)}
onCreate={() => {
- route(InstancePaths.validators_new);
+ route(InstancePaths.otp_devices_new);
}}
onSelect={(id: string) => {
- route(InstancePaths.validators_update.replace(":vid", id));
+ route(InstancePaths.otp_devices_update.replace(":vid", id));
}}
/>
<Route
- path={InstancePaths.validators_update}
+ path={InstancePaths.otp_devices_update}
component={ValidatorUpdatePage}
onConfirm={() => {
- route(InstancePaths.validators_list);
+ route(InstancePaths.otp_devices_list);
}}
onUnauthorized={LoginPageAccessDenied}
- onLoadError={ServerErrorRedirectTo(InstancePaths.validators_list)}
+ onLoadError={ServerErrorRedirectTo(InstancePaths.otp_devices_list)}
onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}
onBack={() => {
- route(InstancePaths.validators_list);
+ route(InstancePaths.otp_devices_list);
}}
/>
<Route
- path={InstancePaths.validators_new}
+ path={InstancePaths.otp_devices_new}
component={ValidatorCreatePage}
onConfirm={() => {
- route(InstancePaths.validators_list);
+ route(InstancePaths.otp_devices_list);
}}
onBack={() => {
- route(InstancePaths.validators_list);
+ route(InstancePaths.otp_devices_list);
}}
/>
{/**
@@ -667,7 +667,7 @@ export function InstanceRoutes({
}}
/>
<Route path={InstancePaths.kyc} component={ListKYCPage} />
- <Route path={InstancePaths.settings} component={Settings} />
+ <Route path={InstancePaths.interface} component={Settings} />
{/**
* Example pages
*/}
diff --git
a/packages/merchant-backoffice-ui/src/components/form/InputPaytoForm.tsx
b/packages/merchant-backoffice-ui/src/components/form/InputPaytoForm.tsx
index 5cd69a0b3..0362310b9 100644
--- a/packages/merchant-backoffice-ui/src/components/form/InputPaytoForm.tsx
+++ b/packages/merchant-backoffice-ui/src/components/form/InputPaytoForm.tsx
@@ -306,8 +306,9 @@ export function InputPaytoForm<T>({
<Fragment>
<Input<Entity>
name="path1"
- label={i18n.str`Account`}
- tooltip={i18n.str`Bank Account Number.`}
+ label={i18n.str`IBAN`}
+ tooltip={i18n.str`International Bank Account Number.`}
+ placeholder="DE1231231231"
inputExtra={{ style: { textTransform: "uppercase" } }}
/>
</Fragment>
@@ -371,8 +372,8 @@ export function InputPaytoForm<T>({
<Fragment>
<Input
name="params.receiver-name"
- label={i18n.str`Name`}
- tooltip={i18n.str`Bank account owner's name.`}
+ label={i18n.str`Owner's name`}
+ tooltip={i18n.str`Legal name of the person holding the account.`}
/>
</Fragment>
)}
diff --git
a/packages/merchant-backoffice-ui/src/components/form/InputWithAddon.tsx
b/packages/merchant-backoffice-ui/src/components/form/InputWithAddon.tsx
index d7b490a5d..e9fd88770 100644
--- a/packages/merchant-backoffice-ui/src/components/form/InputWithAddon.tsx
+++ b/packages/merchant-backoffice-ui/src/components/form/InputWithAddon.tsx
@@ -26,6 +26,7 @@ export interface Props<T> extends InputProps<T> {
inputType?: "text" | "number" | "password";
addonBefore?: ComponentChildren;
addonAfter?: ComponentChildren;
+ addonAfterAction?: () => void;
toStr?: (v?: any) => string;
fromStr?: (s: string) => any;
inputExtra?: any;
@@ -50,6 +51,7 @@ export function InputWithAddon<T>({
inputExtra,
side,
addonAfter,
+ addonAfterAction,
toStr = defaultToString,
fromStr = defaultFromString,
}: Props<keyof T>): VNode {
@@ -76,9 +78,8 @@ export function InputWithAddon<T>({
</div>
)}
<p
- class={`control${expand ? " is-expanded" : ""}${
- required ? " has-icons-right" : ""
- }`}
+ class={`control${expand ? " is-expanded" : ""}${required ? "
has-icons-right" : ""
+ }`}
>
<input
{...(inputExtra || {})}
@@ -99,7 +100,7 @@ export function InputWithAddon<T>({
{children}
</p>
{addonAfter && (
- <div class="control">
+ <div class="control" onClick={addonAfterAction} style={{ cursor:
addonAfterAction ? "pointer" : undefined }}>
<a class="button is-static">{addonAfter}</a>
</div>
)}
@@ -109,7 +110,7 @@ export function InputWithAddon<T>({
</div>
{expand ? <div>{side}</div> : side}
</div>
-
+
</div>
);
}
diff --git a/packages/merchant-backoffice-ui/src/components/menu/SideBar.tsx
b/packages/merchant-backoffice-ui/src/components/menu/SideBar.tsx
index d6c4ce4b2..8aac5f543 100644
--- a/packages/merchant-backoffice-ui/src/components/menu/SideBar.tsx
+++ b/packages/merchant-backoffice-ui/src/components/menu/SideBar.tsx
@@ -149,12 +149,12 @@ export function Sidebar({
</a>
</li>
<li>
- <a href={"/validators"} class="has-icon">
+ <a href={"/otp-devices"} class="has-icon">
<span class="icon">
<i class="mdi mdi-lock" />
</span>
<span class="menu-item-label">
- <i18n.Translate>Validators</i18n.Translate>
+ <i18n.Translate>OTP Devices</i18n.Translate>
</span>
</a>
</li>
diff --git a/packages/merchant-backoffice-ui/src/components/menu/index.tsx
b/packages/merchant-backoffice-ui/src/components/menu/index.tsx
index 0e881d7a5..7bb7c0c00 100644
--- a/packages/merchant-backoffice-ui/src/components/menu/index.tsx
+++ b/packages/merchant-backoffice-ui/src/components/menu/index.tsx
@@ -50,12 +50,12 @@ function getInstanceTitle(path: string, id: string): string
{
return `${id}: New webhook`;
case InstancePaths.webhooks_update:
return `${id}: Update webhook`;
- case InstancePaths.validators_list:
- return `${id}: Validators`;
- case InstancePaths.validators_new:
- return `${id}: New validator`;
- case InstancePaths.validators_update:
- return `${id}: Update validators`;
+ case InstancePaths.otp_devices_list:
+ return `${id}: otp devices`;
+ case InstancePaths.otp_devices_new:
+ return `${id}: New otp devices`;
+ case InstancePaths.otp_devices_update:
+ return `${id}: Update otp devices`;
case InstancePaths.templates_new:
return `${id}: New template`;
case InstancePaths.templates_update:
diff --git a/packages/merchant-backoffice-ui/src/hooks/otp.ts
b/packages/merchant-backoffice-ui/src/hooks/otp.ts
index 93eefeea5..b045e365a 100644
--- a/packages/merchant-backoffice-ui/src/hooks/otp.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/otp.ts
@@ -158,7 +158,7 @@ export function useInstanceOtpDevices(
// if the query returns less that we ask, then we have reach the end or
beginning
const isReachingEnd =
afterData && afterData.data.otp_devices.length < totalAfter;
- const isReachingStart = false;
+ const isReachingStart = true;
const pagination = {
isReachingEnd,
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/accounts/list/index.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/accounts/list/index.tsx
index 9788ce0ec..100241e22 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/accounts/list/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/accounts/list/index.tsx
@@ -43,7 +43,7 @@ interface Props {
onSelect: (id: string) => void;
}
-export default function ListValidators({
+export default function ListOtpDevices({
onUnauthorized,
onLoadError,
onCreate,
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/accounts/update/Update.stories.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/accounts/update/Update.stories.tsx
index fcb77b820..d6b1d65e0 100644
---
a/packages/merchant-backoffice-ui/src/paths/instance/accounts/update/Update.stories.tsx
+++
b/packages/merchant-backoffice-ui/src/paths/instance/accounts/update/Update.stories.tsx
@@ -23,7 +23,7 @@ import { h, VNode, FunctionalComponent } from "preact";
import { UpdatePage as TestedComponent } from "./UpdatePage.js";
export default {
- title: "Pages/Validators/Update",
+ title: "Pages/OtpDevices/Update",
component: TestedComponent,
argTypes: {
onUpdate: { action: "onUpdate" },
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/orders/details/DetailPage.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/orders/details/DetailPage.tsx
index 1cfbec29b..5ff76e37a 100644
---
a/packages/merchant-backoffice-ui/src/paths/instance/orders/details/DetailPage.tsx
+++
b/packages/merchant-backoffice-ui/src/paths/instance/orders/details/DetailPage.tsx
@@ -503,13 +503,15 @@ function PaidPage({
textOverflow: "ellipsis",
}}
>
- <p>
- <i18n.Translate>Next event in </i18n.Translate>
{formatDistance(
- nextEvent!.when,
- new Date(),
- // "yyyy/MM/dd HH:mm:ss",
- )}
- </p>
+ {nextEvent &&
+ <p>
+ <i18n.Translate>Next event in </i18n.Translate>
{formatDistance(
+ nextEvent.when,
+ new Date(),
+ // "yyyy/MM/dd HH:mm:ss",
+ )}
+ </p>
+ }
</div>
</div>
</div>
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/validators/create/Create.stories.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/create/Create.stories.tsx
similarity index 96%
rename from
packages/merchant-backoffice-ui/src/paths/instance/validators/create/Create.stories.tsx
rename to
packages/merchant-backoffice-ui/src/paths/instance/otp_devices/create/Create.stories.tsx
index 56762db7b..26f851cc8 100644
---
a/packages/merchant-backoffice-ui/src/paths/instance/validators/create/Create.stories.tsx
+++
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/create/Create.stories.tsx
@@ -23,6 +23,6 @@ import { h, VNode, FunctionalComponent } from "preact";
import { CreatePage as TestedComponent } from "./CreatePage.js";
export default {
- title: "Pages/Validators/Create",
+ title: "Pages/OtpDevices/Create",
component: TestedComponent,
};
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/validators/create/CreatePage.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/create/CreatePage.tsx
similarity index 81%
rename from
packages/merchant-backoffice-ui/src/paths/instance/validators/create/CreatePage.tsx
rename to
packages/merchant-backoffice-ui/src/paths/instance/otp_devices/create/CreatePage.tsx
index 4e813d777..5f1ae26a3 100644
---
a/packages/merchant-backoffice-ui/src/paths/instance/validators/create/CreatePage.tsx
+++
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/create/CreatePage.tsx
@@ -70,7 +70,7 @@ export function CreatePage({ onCreate, onBack }: Props):
VNode {
: state.otp_key.length !== 32
? i18n.str`size of the key should be 32`
: undefined,
- otp_device_description: !state.otp_device_description ?
i18n.str`required`
+ otp_device_description: !state.otp_device_description ? i18n.str`required`
: !/[a-zA-Z0-9]*/.test(state.otp_device_description)
? i18n.str`no valid. only characters and numbers`
: undefined,
@@ -125,8 +125,11 @@ export function CreatePage({ onCreate, onBack }: Props):
VNode {
help="Be sure to be very hard to guess or use the random
generator"
tooltip={i18n.str`Your device need to have exactly the
same value`}
fromStr={(v) => v.toUpperCase()}
+ addonAfterAction={() => {
+ setShowKey(!showKey);
+ }}
addonAfter={
- <span class="icon">
+ <span class="icon" >
{showKey ? (
<i class="mdi mdi-eye" />
) : (
@@ -135,34 +138,15 @@ export function CreatePage({ onCreate, onBack }: Props):
VNode {
</span>
}
side={
- <span style={{ display: "flex" }}>
- <button
- data-tooltip={i18n.str`generate random secret key`}
- class="button is-info mr-3"
- onClick={(e) => {
- setState((s) => ({ ...s, otp_key:
randomBase32Key() }));
- }}
- >
- <i18n.Translate>random</i18n.Translate>
- </button>
- <button
- data-tooltip={
- showKey
- ? i18n.str`show secret key`
- : i18n.str`hide secret key`
- }
- class="button is-info mr-3"
- onClick={(e) => {
- setShowKey(!showKey);
- }}
- >
- {showKey ? (
- <i18n.Translate>hide</i18n.Translate>
- ) : (
- <i18n.Translate>show</i18n.Translate>
- )}
- </button>
- </span>
+ <button
+ data-tooltip={i18n.str`generate random secret key`}
+ class="button is-info mr-3"
+ onClick={(e) => {
+ setState((s) => ({ ...s, otp_key: randomBase32Key()
}));
+ }}
+ >
+ <i18n.Translate>random</i18n.Translate>
+ </button>
}
/>
</Fragment>
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/validators/create/CreatedSuccessfully.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/create/CreatedSuccessfully.tsx
similarity index 100%
rename from
packages/merchant-backoffice-ui/src/paths/instance/validators/create/CreatedSuccessfully.tsx
rename to
packages/merchant-backoffice-ui/src/paths/instance/otp_devices/create/CreatedSuccessfully.tsx
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/validators/create/index.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/create/index.tsx
similarity index 100%
rename from
packages/merchant-backoffice-ui/src/paths/instance/validators/create/index.tsx
rename to
packages/merchant-backoffice-ui/src/paths/instance/otp_devices/create/index.tsx
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/validators/list/List.stories.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/list/List.stories.tsx
similarity index 96%
rename from
packages/merchant-backoffice-ui/src/paths/instance/validators/list/List.stories.tsx
rename to
packages/merchant-backoffice-ui/src/paths/instance/otp_devices/list/List.stories.tsx
index 3aa491c53..b18049674 100644
---
a/packages/merchant-backoffice-ui/src/paths/instance/validators/list/List.stories.tsx
+++
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/list/List.stories.tsx
@@ -23,6 +23,6 @@ import { FunctionalComponent, h } from "preact";
import { ListPage as TestedComponent } from "./ListPage.js";
export default {
- title: "Pages/Validators/List",
+ title: "Pages/OtpDevices/List",
component: TestedComponent,
};
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/validators/list/ListPage.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/list/ListPage.tsx
similarity index 100%
rename from
packages/merchant-backoffice-ui/src/paths/instance/validators/list/ListPage.tsx
rename to
packages/merchant-backoffice-ui/src/paths/instance/otp_devices/list/ListPage.tsx
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/validators/list/Table.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/list/Table.tsx
similarity index 100%
rename from
packages/merchant-backoffice-ui/src/paths/instance/validators/list/Table.tsx
rename to
packages/merchant-backoffice-ui/src/paths/instance/otp_devices/list/Table.tsx
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/validators/list/index.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/list/index.tsx
similarity index 98%
rename from
packages/merchant-backoffice-ui/src/paths/instance/validators/list/index.tsx
rename to
packages/merchant-backoffice-ui/src/paths/instance/otp_devices/list/index.tsx
index 8837c848b..2aae8738a 100644
---
a/packages/merchant-backoffice-ui/src/paths/instance/validators/list/index.tsx
+++
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/list/index.tsx
@@ -42,7 +42,7 @@ interface Props {
onSelect: (id: string) => void;
}
-export default function ListValidators({
+export default function ListOtpDevices({
onUnauthorized,
onLoadError,
onCreate,
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/validators/update/Update.stories.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/update/Update.stories.tsx
similarity index 96%
rename from
packages/merchant-backoffice-ui/src/paths/instance/validators/update/Update.stories.tsx
rename to
packages/merchant-backoffice-ui/src/paths/instance/otp_devices/update/Update.stories.tsx
index fcb77b820..d6b1d65e0 100644
---
a/packages/merchant-backoffice-ui/src/paths/instance/validators/update/Update.stories.tsx
+++
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/update/Update.stories.tsx
@@ -23,7 +23,7 @@ import { h, VNode, FunctionalComponent } from "preact";
import { UpdatePage as TestedComponent } from "./UpdatePage.js";
export default {
- title: "Pages/Validators/Update",
+ title: "Pages/OtpDevices/Update",
component: TestedComponent,
argTypes: {
onUpdate: { action: "onUpdate" },
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/validators/update/UpdatePage.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/update/UpdatePage.tsx
similarity index 80%
rename from
packages/merchant-backoffice-ui/src/paths/instance/validators/update/UpdatePage.tsx
rename to
packages/merchant-backoffice-ui/src/paths/instance/otp_devices/update/UpdatePage.tsx
index 79be9802f..1164aed5a 100644
---
a/packages/merchant-backoffice-ui/src/paths/instance/validators/update/UpdatePage.tsx
+++
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/update/UpdatePage.tsx
@@ -109,8 +109,13 @@ export function UpdatePage({ device, onUpdate, onBack }:
Props): VNode {
help={state.otp_key === undefined ? "Not modified" : "Be
sure to be very hard to guess or use the random generator"}
tooltip={i18n.str`Your device need to have exactly the
same value`}
fromStr={(v) => v.toUpperCase()}
+ addonAfterAction={() => {
+ setShowKey(!showKey);
+ }}
addonAfter={
- <span class="icon">
+ <span class="icon" onClick={() => {
+ setShowKey(!showKey);
+ }}>
{showKey ? (
<i class="mdi mdi-eye" />
) : (
@@ -125,34 +130,15 @@ export function UpdatePage({ device, onUpdate, onBack }:
Props): VNode {
setState((s) => ({ ...s, otp_key: "" }));
}}
class="button">change key</button> :
- <span style={{ display: "flex" }}>
- <button
- data-tooltip={i18n.str`generate random secret
key`}
- class="button is-info mr-3"
- onClick={(e) => {
- setState((s) => ({ ...s, otp_key:
randomBase32Key() }));
- }}
- >
- <i18n.Translate>random</i18n.Translate>
- </button>
- <button
- data-tooltip={
- showKey
- ? i18n.str`show secret key`
- : i18n.str`hide secret key`
- }
- class="button is-info mr-3"
- onClick={(e) => {
- setShowKey(!showKey);
- }}
- >
- {showKey ? (
- <i18n.Translate>hide</i18n.Translate>
- ) : (
- <i18n.Translate>show</i18n.Translate>
- )}
- </button>
- </span>
+ <button
+ data-tooltip={i18n.str`generate random secret key`}
+ class="button is-info mr-3"
+ onClick={(e) => {
+ setState((s) => ({ ...s, otp_key:
randomBase32Key() }));
+ }}
+ >
+ <i18n.Translate>random</i18n.Translate>
+ </button>
}
/>
</Fragment>
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/validators/update/index.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/otp_devices/update/index.tsx
similarity index 100%
rename from
packages/merchant-backoffice-ui/src/paths/instance/validators/update/index.tsx
rename to
packages/merchant-backoffice-ui/src/paths/instance/otp_devices/update/index.tsx
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.