gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated (27f10e6e8 -> 1e39c57cb)


From: gnunet
Subject: [taler-wallet-core] branch master updated (27f10e6e8 -> 1e39c57cb)
Date: Mon, 24 Oct 2022 16:12:37 +0200

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

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

    from 27f10e6e8 demobank-ui: license header
     new 7a80d3341 get rid of typescript empty object warning
     new 1e39c57cb wallet dev mode and backup into devmode

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/taler-util/src/wallet-types.ts            |  2 +-
 packages/taler-wallet-core/src/wallet-api-types.ts | 91 +++++++++++-----------
 .../src/NavigationBar.tsx                          | 25 +++---
 .../src/context/devContext.ts                      | 31 ++++----
 ...eAutoOpenPermissions.ts => useWalletDevMode.ts} | 43 ++++------
 .../src/wallet/Settings.stories.tsx                |  5 ++
 .../src/wallet/Settings.tsx                        | 26 +++----
 .../taler-wallet-webextension/src/wxBackend.ts     |  1 +
 8 files changed, 109 insertions(+), 115 deletions(-)
 copy packages/taler-wallet-webextension/src/hooks/{useAutoOpenPermissions.ts 
=> useWalletDevMode.ts} (53%)

diff --git a/packages/taler-util/src/wallet-types.ts 
b/packages/taler-util/src/wallet-types.ts
index 77ba42caf..13fcb94ff 100644
--- a/packages/taler-util/src/wallet-types.ts
+++ b/packages/taler-util/src/wallet-types.ts
@@ -697,7 +697,7 @@ export interface WalletCoreVersion {
   exchange: string;
   merchant: string;
   bank: string;
-  devMode?: boolean;
+  devMode: boolean;
 }
 
 export interface KnownBankAccountsInfo {
diff --git a/packages/taler-wallet-core/src/wallet-api-types.ts 
b/packages/taler-wallet-core/src/wallet-api-types.ts
index 097518263..302b0e2e1 100644
--- a/packages/taler-wallet-core/src/wallet-api-types.ts
+++ b/packages/taler-wallet-core/src/wallet-api-types.ts
@@ -177,6 +177,7 @@ export enum WalletApiOperation {
 
 // group: Initialization
 
+type EmptyObject = Record<string, never>;
 /**
  * Initialize wallet-core.
  *
@@ -184,13 +185,13 @@ export enum WalletApiOperation {
  */
 export type InitWalletOp = {
   op: WalletApiOperation.InitWallet;
-  request: {};
+  request: EmptyObject;
   response: InitResponse;
 };
 
 export type GetVersionOp = {
   op: WalletApiOperation.GetVersion;
-  request: {};
+  request: EmptyObject;
   response: WalletCoreVersion;
 };
 
@@ -201,7 +202,7 @@ export type GetVersionOp = {
  */
 export type GetBalancesOp = {
   op: WalletApiOperation.GetBalances;
-  request: {};
+  request: EmptyObject;
   response: BalancesResponse;
 };
 
@@ -224,8 +225,8 @@ export type GetTransactionByIdOp = {
 
 export type RetryPendingNowOp = {
   op: WalletApiOperation.RetryPendingNow;
-  request: {};
-  response: {};
+  request: EmptyObject;
+  response: EmptyObject;
 };
 
 /**
@@ -234,7 +235,7 @@ export type RetryPendingNowOp = {
 export type DeleteTransactionOp = {
   op: WalletApiOperation.DeleteTransaction;
   request: DeleteTransactionRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -243,7 +244,7 @@ export type DeleteTransactionOp = {
 export type RetryTransactionOp = {
   op: WalletApiOperation.RetryTransaction;
   request: RetryTransactionRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 // group: Withdrawals
@@ -317,7 +318,7 @@ export type ConfirmPayOp = {
 export type AbortPayWithRefundOp = {
   op: WalletApiOperation.AbortFailedPayWithRefund;
   request: AbortPayWithRefundRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -358,7 +359,7 @@ export type PrepareTipOp = {
 export type AcceptTipOp = {
   op: WalletApiOperation.AcceptTip;
   request: AcceptTipRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 // group: Exchange Management
@@ -368,7 +369,7 @@ export type AcceptTipOp = {
  */
 export type ListExchangesOp = {
   op: WalletApiOperation.ListExchanges;
-  request: {};
+  request: EmptyObject;
   response: ExchangesListResponse;
 };
 
@@ -378,7 +379,7 @@ export type ListExchangesOp = {
 export type AddExchangeOp = {
   op: WalletApiOperation.AddExchange;
   request: AddExchangeRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 export type ListKnownBankAccountsOp = {
@@ -390,13 +391,13 @@ export type ListKnownBankAccountsOp = {
 export type AddKnownBankAccountsOp = {
   op: WalletApiOperation.AddKnownBankAccounts;
   request: AddKnownBankAccountsRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 export type ForgetKnownBankAccountsOp = {
   op: WalletApiOperation.ForgetKnownBankAccounts;
   request: ForgetKnownBankAccountsRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -405,7 +406,7 @@ export type ForgetKnownBankAccountsOp = {
 export type SetExchangeTosAcceptedOp = {
   op: WalletApiOperation.SetExchangeTosAccepted;
   request: AcceptExchangeTosRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -431,7 +432,7 @@ export type GetExchangeDetailedInfoOp = {
  */
 export type ListCurrenciesOp = {
   op: WalletApiOperation.ListCurrencies;
-  request: {};
+  request: EmptyObject;
   response: WalletCurrencyInfo;
 };
 
@@ -477,7 +478,7 @@ export type PrepareDepositOp = {
  */
 export type ExportBackupRecoveryOp = {
   op: WalletApiOperation.ExportBackupRecovery;
-  request: {};
+  request: EmptyObject;
   response: BackupRecovery;
 };
 
@@ -487,7 +488,7 @@ export type ExportBackupRecoveryOp = {
 export type ImportBackupRecoveryOp = {
   op: WalletApiOperation.ImportBackupRecovery;
   request: RecoveryLoadRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -495,14 +496,14 @@ export type ImportBackupRecoveryOp = {
  */
 export type RunBackupCycleOp = {
   op: WalletApiOperation.RunBackupCycle;
-  request: {};
-  response: {};
+  request: EmptyObject;
+  response: EmptyObject;
 };
 
 export type ExportBackupOp = {
   op: WalletApiOperation.ExportBackup;
-  request: {};
-  response: {};
+  request: EmptyObject;
+  response: EmptyObject;
 };
 
 /**
@@ -511,13 +512,13 @@ export type ExportBackupOp = {
 export type AddBackupProviderOp = {
   op: WalletApiOperation.AddBackupProvider;
   request: AddBackupProviderRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 export type RemoveBackupProviderOp = {
   op: WalletApiOperation.RemoveBackupProvider;
   request: RemoveBackupProviderRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -525,7 +526,7 @@ export type RemoveBackupProviderOp = {
  */
 export type GetBackupInfoOp = {
   op: WalletApiOperation.GetBackupInfo;
-  request: {};
+  request: EmptyObject;
   response: BackupInfo;
 };
 
@@ -537,7 +538,7 @@ export type GetBackupInfoOp = {
 export type SetWalletDeviceIdOp = {
   op: WalletApiOperation.SetWalletDeviceId;
   request: SetWalletDeviceIdRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -545,7 +546,7 @@ export type SetWalletDeviceIdOp = {
  */
 export type ExportBackupPlainOp = {
   op: WalletApiOperation.ExportBackupPlain;
-  request: {};
+  request: EmptyObject;
   response: WalletBackupContentV1;
 };
 
@@ -575,7 +576,7 @@ export type CheckPeerPushPaymentOp = {
 export type AcceptPeerPushPaymentOp = {
   op: WalletApiOperation.AcceptPeerPushPayment;
   request: AcceptPeerPushPaymentRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -602,7 +603,7 @@ export type CheckPeerPullPaymentOp = {
 export type AcceptPeerPullPaymentOp = {
   op: WalletApiOperation.AcceptPeerPullPayment;
   request: AcceptPeerPullPaymentRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 // group: Database Management
@@ -612,7 +613,7 @@ export type AcceptPeerPullPaymentOp = {
  */
 export type ExportDbOp = {
   op: WalletApiOperation.ExportDb;
-  request: {};
+  request: EmptyObject;
   response: any;
 };
 
@@ -627,8 +628,8 @@ export type ImportDbOp = {
  */
 export type ClearDbOp = {
   op: WalletApiOperation.ClearDb;
-  request: {};
-  response: {};
+  request: EmptyObject;
+  response: EmptyObject;
 };
 
 /**
@@ -636,8 +637,8 @@ export type ClearDbOp = {
  */
 export type RecycleOp = {
   op: WalletApiOperation.Recycle;
-  request: {};
-  response: {};
+  request: EmptyObject;
+  response: EmptyObject;
 };
 
 // group: Testing and Debugging
@@ -651,13 +652,13 @@ export type RecycleOp = {
 export type ApplyDevExperimentOp = {
   op: WalletApiOperation.ApplyDevExperiment;
   request: ApplyDevExperimentRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 export type SetDevModeOp = {
   op: WalletApiOperation.SetDevMode;
   request: SetDevModeRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -667,7 +668,7 @@ export type SetDevModeOp = {
 export type RunIntegrationTestOp = {
   op: WalletApiOperation.RunIntegrationTest;
   request: IntegrationTestArgs;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -675,7 +676,7 @@ export type RunIntegrationTestOp = {
  */
 export type TestCryptoOp = {
   op: WalletApiOperation.TestCrypto;
-  request: {};
+  request: EmptyObject;
   response: any;
 };
 
@@ -686,7 +687,7 @@ export type TestCryptoOp = {
 export type WithdrawTestBalanceOp = {
   op: WalletApiOperation.WithdrawTestBalance;
   request: WithdrawTestBalanceRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -694,8 +695,8 @@ export type WithdrawTestBalanceOp = {
  */
 export type WithdrawTestkudosOp = {
   op: WalletApiOperation.WithdrawTestkudos;
-  request: {};
-  response: {};
+  request: EmptyObject;
+  response: EmptyObject;
 };
 
 /**
@@ -716,7 +717,7 @@ export type TestPayOp = {
 export type WithdrawFakebankOp = {
   op: WalletApiOperation.WithdrawFakebank;
   request: WithdrawFakebankRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -724,7 +725,7 @@ export type WithdrawFakebankOp = {
  */
 export type GetPendingTasksOp = {
   op: WalletApiOperation.GetPendingOperations;
-  request: {};
+  request: EmptyObject;
   response: PendingTasksResponse;
 };
 
@@ -733,7 +734,7 @@ export type GetPendingTasksOp = {
  */
 export type DumpCoinsOp = {
   op: WalletApiOperation.DumpCoins;
-  request: {};
+  request: EmptyObject;
   response: CoinDumpJson;
 };
 
@@ -744,7 +745,7 @@ export type DumpCoinsOp = {
 export type SetCoinSuspendedOp = {
   op: WalletApiOperation.SetCoinSuspended;
   request: SetCoinSuspendedRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 /**
@@ -754,7 +755,7 @@ export type SetCoinSuspendedOp = {
 export type ForceRefreshOp = {
   op: WalletApiOperation.ForceRefresh;
   request: ForceRefreshRequest;
-  response: {};
+  response: EmptyObject;
 };
 
 export type WalletOperations = {
diff --git a/packages/taler-wallet-webextension/src/NavigationBar.tsx 
b/packages/taler-wallet-webextension/src/NavigationBar.tsx
index 4f105aa10..b0a7a1016 100644
--- a/packages/taler-wallet-webextension/src/NavigationBar.tsx
+++ b/packages/taler-wallet-webextension/src/NavigationBar.tsx
@@ -138,9 +138,14 @@ export function PopupNavBar({ path = "" }: { path?: string 
}): VNode {
       >
         <i18n.Translate>Balance</i18n.Translate>
       </a>
-      <a href={Pages.backup} class={path.startsWith("/backup") ? "active" : 
""}>
-        <i18n.Translate>Backup</i18n.Translate>
-      </a>
+      <JustInDevMode>
+        <a
+          href={Pages.backup}
+          class={path.startsWith("/backup") ? "active" : ""}
+        >
+          <i18n.Translate>Backup</i18n.Translate>
+        </a>
+      </JustInDevMode>
       <div style={{ display: "flex", paddingTop: 4, justifyContent: "right" }}>
         <a href={Pages.qr}>
           <SvgIcon
@@ -172,14 +177,14 @@ export function WalletNavBar({ path = "" }: { path?: 
string }): VNode {
         >
           <i18n.Translate>Balance</i18n.Translate>
         </a>
-        <a
-          href={Pages.backup}
-          class={path.startsWith("/backup") ? "active" : ""}
-        >
-          <i18n.Translate>Backup</i18n.Translate>
-        </a>
-
         <JustInDevMode>
+          <a
+            href={Pages.backup}
+            class={path.startsWith("/backup") ? "active" : ""}
+          >
+            <i18n.Translate>Backup</i18n.Translate>
+          </a>
+
           <a href={Pages.dev} class={path.startsWith("/dev") ? "active" : ""}>
             <i18n.Translate>Dev</i18n.Translate>
           </a>
diff --git a/packages/taler-wallet-webextension/src/context/devContext.ts 
b/packages/taler-wallet-webextension/src/context/devContext.ts
index b710716b5..c494b9403 100644
--- a/packages/taler-wallet-webextension/src/context/devContext.ts
+++ b/packages/taler-wallet-webextension/src/context/devContext.ts
@@ -21,16 +21,17 @@
 
 import { createContext, h, VNode } from "preact";
 import { useContext } from "preact/hooks";
-import { useLocalStorage } from "../hooks/useLocalStorage.js";
+import { useWalletDevMode } from "../hooks/useWalletDevMode.js";
+import { ToggleHandler } from "../mui/handlers.js";
 
 interface Type {
   devMode: boolean;
-  toggleDevMode: () => Promise<void>;
+  devModeToggle: ToggleHandler;
 }
 const Context = createContext<Type>({
   devMode: false,
-  toggleDevMode: async () => {
-    return;
+  devModeToggle: {
+    button: {},
   },
 });
 
@@ -40,28 +41,28 @@ export const DevContextProviderForTesting = ({
   value,
   children,
 }: {
-  value: boolean;
+  value?: boolean;
   children: any;
 }): VNode => {
   return h(Context.Provider, {
     value: {
-      devMode: value,
-      toggleDevMode: async () => {
-        return;
-      },
+      devMode: !!value,
+      devModeToggle: {
+        value, button: {}
+      }
     },
     children,
   });
 };
 
 export const DevContextProvider = ({ children }: { children: any }): VNode => {
-  const [value, setter] = useLocalStorage("devMode");
-  const devMode = value === "true";
-  const toggleDevMode = async (): Promise<void> =>
-    setter((v) => (!v ? "true" : undefined));
+  const devModeToggle = useWalletDevMode();
+  const value: Type = { devMode: !!devModeToggle.value, devModeToggle }
+  //support for function as children, useful for getting the value right away
   children =
     children.length === 1 && typeof children === "function"
-      ? children({ devMode })
+      ? children(value)
       : children;
-  return h(Context.Provider, { value: { devMode, toggleDevMode }, children });
+
+  return h(Context.Provider, { value, children });
 };
diff --git 
a/packages/taler-wallet-webextension/src/hooks/useAutoOpenPermissions.ts 
b/packages/taler-wallet-webextension/src/hooks/useWalletDevMode.ts
similarity index 53%
copy from packages/taler-wallet-webextension/src/hooks/useAutoOpenPermissions.ts
copy to packages/taler-wallet-webextension/src/hooks/useWalletDevMode.ts
index 727d653af..8021db686 100644
--- a/packages/taler-wallet-webextension/src/hooks/useAutoOpenPermissions.ts
+++ b/packages/taler-wallet-webextension/src/hooks/useWalletDevMode.ts
@@ -15,58 +15,41 @@
  */
 
 import { useState, useEffect } from "preact/hooks";
-import * as wxApi from "../wxApi.js";
-import { platform } from "../platform/api.js";
+import { wxClient } from "../wxApi.js";
 import { ToggleHandler } from "../mui/handlers.js";
-import { TalerError } from "@gnu-taler/taler-wallet-core";
+import { TalerError, WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 
-export function useAutoOpenPermissions(): ToggleHandler {
-  const [enabled, setEnabled] = useState(false);
+export function useWalletDevMode(): ToggleHandler {
+  const [enabled, setEnabled] = useState<undefined | boolean>(undefined);
   const [error, setError] = useState<TalerError | undefined>();
   const toggle = async (): Promise<void> => {
-    return handleAutoOpenPerm(enabled, setEnabled).catch((e) => {
+    return handleOpen(enabled, setEnabled).catch((e) => {
       setError(TalerError.fromException(e));
     });
   };
 
   useEffect(() => {
     async function getValue(): Promise<void> {
-      const res = await wxApi.containsHeaderListener();
-      setEnabled(res.newValue);
+      const res = await wxClient.call(WalletApiOperation.GetVersion, {});
+      setEnabled(res.devMode);
     }
     getValue();
   }, []);
   return {
     value: enabled,
     button: {
-      onClick: toggle,
+      onClick: enabled === undefined ? undefined : toggle,
       error,
     },
   };
 }
 
-async function handleAutoOpenPerm(
-  isEnabled: boolean,
+async function handleOpen(
+  currentValue: undefined | boolean,
   onChange: (value: boolean) => void,
 ): Promise<void> {
-  if (!isEnabled) {
-    // We set permissions here, since apparently FF wants this to be done
-    // as the result of an input event ...
-    let granted: boolean;
-    try {
-      granted = await platform.getPermissionsApi().requestHostPermissions();
-    } catch (lastError) {
-      onChange(false);
-      throw lastError;
-    }
-    const res = await wxApi.toggleHeaderListener(granted);
-    onChange(res.newValue);
-  } else {
-    try {
-      await wxApi.toggleHeaderListener(false).then((r) => 
onChange(r.newValue));
-    } catch (e) {
-      console.log(e);
-    }
-  }
+  const nextValue = !currentValue
+  await wxClient.call(WalletApiOperation.SetDevMode, { devModeEnabled: 
nextValue });
+  onChange(nextValue);
   return;
 }
diff --git a/packages/taler-wallet-webextension/src/wallet/Settings.stories.tsx 
b/packages/taler-wallet-webextension/src/wallet/Settings.stories.tsx
index d0707952f..4082ca29b 100644
--- a/packages/taler-wallet-webextension/src/wallet/Settings.stories.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/Settings.stories.tsx
@@ -37,6 +37,7 @@ const version = {
     bank: "0:0:0",
     hash: "d439c3e1bc743f2aa47de4457953dba6ecb0e20f",
     version: "0.9.0-dev.1",
+    devMode: false,
   },
   webexVersion: {
     version: "0.9.0.13",
@@ -46,6 +47,7 @@ const version = {
 
 export const AllOff = createExample(TestedComponent, {
   deviceName: "this-is-the-device-name",
+  devModeToggle: { value: false, button: {} },
   autoOpenToggle: { value: false, button: {} },
   clipboardToggle: { value: false, button: {} },
   setDeviceName: () => Promise.resolve(),
@@ -54,6 +56,7 @@ export const AllOff = createExample(TestedComponent, {
 
 export const OneChecked = createExample(TestedComponent, {
   deviceName: "this-is-the-device-name",
+  devModeToggle: { value: false, button: {} },
   autoOpenToggle: { value: false, button: {} },
   clipboardToggle: { value: false, button: {} },
   setDeviceName: () => Promise.resolve(),
@@ -62,6 +65,7 @@ export const OneChecked = createExample(TestedComponent, {
 
 export const WithOneExchange = createExample(TestedComponent, {
   deviceName: "this-is-the-device-name",
+  devModeToggle: { value: false, button: {} },
   autoOpenToggle: { value: false, button: {} },
   clipboardToggle: { value: false, button: {} },
   setDeviceName: () => Promise.resolve(),
@@ -83,6 +87,7 @@ export const WithOneExchange = createExample(TestedComponent, 
{
 
 export const WithExchangeInDifferentState = createExample(TestedComponent, {
   deviceName: "this-is-the-device-name",
+  devModeToggle: { value: false, button: {} },
   autoOpenToggle: { value: false, button: {} },
   clipboardToggle: { value: false, button: {} },
   setDeviceName: () => Promise.resolve(),
diff --git a/packages/taler-wallet-webextension/src/wallet/Settings.tsx 
b/packages/taler-wallet-webextension/src/wallet/Settings.tsx
index 2ff9f15f5..8f6807d46 100644
--- a/packages/taler-wallet-webextension/src/wallet/Settings.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/Settings.tsx
@@ -19,6 +19,7 @@ import {
   ExchangeTosStatus,
   WalletCoreVersion,
 } from "@gnu-taler/taler-util";
+import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 import { Fragment, h, VNode } from "preact";
 import { Checkbox } from "../components/Checkbox.js";
 import { ErrorTalerOperation } from "../components/ErrorTalerOperation.js";
@@ -36,26 +37,26 @@ import {
 import { useDevContext } from "../context/devContext.js";
 import { useTranslationContext } from "../context/translation.js";
 import { useAsyncAsHook } from "../hooks/useAsyncAsHook.js";
-import { useBackupDeviceName } from "../hooks/useBackupDeviceName.js";
 import { useAutoOpenPermissions } from "../hooks/useAutoOpenPermissions.js";
+import { useBackupDeviceName } from "../hooks/useBackupDeviceName.js";
+import { useClipboardPermissions } from "../hooks/useClipboardPermissions.js";
 import { ToggleHandler } from "../mui/handlers.js";
 import { Pages } from "../NavigationBar.js";
-import * as wxApi from "../wxApi.js";
 import { platform } from "../platform/api.js";
-import { useClipboardPermissions } from "../hooks/useClipboardPermissions.js";
+import { wxClient } from "../wxApi.js";
 
 const GIT_HASH = typeof __GIT_HASH__ !== "undefined" ? __GIT_HASH__ : 
undefined;
 
 export function SettingsPage(): VNode {
   const autoOpenToggle = useAutoOpenPermissions();
   const clipboardToggle = useClipboardPermissions();
-  const { devMode, toggleDevMode } = useDevContext();
+  const { devModeToggle } = useDevContext();
   const { name, update } = useBackupDeviceName();
   const webex = platform.getWalletWebExVersion();
 
   const exchangesHook = useAsyncAsHook(async () => {
-    const list = await wxApi.listExchanges();
-    const version = await wxApi.getVersion();
+    const list = await wxClient.call(WalletApiOperation.ListExchanges, {});
+    const version = await wxClient.call(WalletApiOperation.GetVersion, {});
     return { exchanges: list.exchanges, version };
   });
   const { exchanges, version } =
@@ -70,8 +71,7 @@ export function SettingsPage(): VNode {
       setDeviceName={update}
       autoOpenToggle={autoOpenToggle}
       clipboardToggle={clipboardToggle}
-      developerMode={devMode}
-      toggleDeveloperMode={toggleDevMode}
+      devModeToggle={devModeToggle}
       webexVersion={{
         version: webex.version,
         hash: GIT_HASH,
@@ -86,8 +86,7 @@ export interface ViewProps {
   setDeviceName: (s: string) => Promise<void>;
   autoOpenToggle: ToggleHandler;
   clipboardToggle: ToggleHandler;
-  developerMode: boolean;
-  toggleDeveloperMode: () => Promise<void>;
+  devModeToggle: ToggleHandler;
   knownExchanges: Array<ExchangeListItem>;
   coreVersion: WalletCoreVersion | undefined;
   webexVersion: {
@@ -100,10 +99,9 @@ export function SettingsView({
   knownExchanges,
   autoOpenToggle,
   clipboardToggle,
-  developerMode,
+  devModeToggle,
   coreVersion,
   webexVersion,
-  toggleDeveloperMode,
 }: ViewProps): VNode {
   const { i18n, lang, supportedLang, changeLanguage } = 
useTranslationContext();
 
@@ -248,8 +246,8 @@ export function SettingsView({
               More options and information useful for debugging
             </i18n.Translate>
           }
-          enabled={developerMode}
-          onToggle={toggleDeveloperMode}
+          enabled={devModeToggle.value!}
+          onToggle={devModeToggle.button.onClick!}
         />
 
         <JustInDevMode>
diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts 
b/packages/taler-wallet-webextension/src/wxBackend.ts
index 6f930b788..7528457c3 100644
--- a/packages/taler-wallet-webextension/src/wxBackend.ts
+++ b/packages/taler-wallet-webextension/src/wxBackend.ts
@@ -151,6 +151,7 @@ async function dispatch(
         r = wrapResponse({ newValue: res });
         break;
       }
+      //FIXME: implement type checked api like WalletCoreApi
       case "toggleHeaderListener": {
         const newVal = req.payload.value;
         logger.trace("new extended permissions value", newVal);

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