diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/hooks/useWalletDevMode.ts')
-rw-r--r-- | packages/taler-wallet-webextension/src/hooks/useWalletDevMode.ts | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/packages/taler-wallet-webextension/src/hooks/useWalletDevMode.ts b/packages/taler-wallet-webextension/src/hooks/useWalletDevMode.ts index 6ae55da61..db7effe96 100644 --- a/packages/taler-wallet-webextension/src/hooks/useWalletDevMode.ts +++ b/packages/taler-wallet-webextension/src/hooks/useWalletDevMode.ts @@ -14,21 +14,28 @@ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ -import { useState, useEffect } from "preact/hooks"; -import { ToggleHandler } from "../mui/handlers.js"; -import { TalerError, WalletApiOperation } from "@gnu-taler/taler-wallet-core"; +import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; +import { useEffect, useState } from "preact/hooks"; import { useBackendContext } from "../context/backend.js"; -export function useWalletDevMode(): ToggleHandler { +type Result = { + value: boolean | undefined; + toggle: () => Promise<void>; +}; + +export function useWalletDevMode(): Result { const [enabled, setEnabled] = useState<undefined | boolean>(undefined); - const [error, setError] = useState<TalerError | undefined>(); const api = useBackendContext(); + // const { pushAlertOnError } = useAlertContext(); - const toggle = async (): Promise<void> => { - return handleOpen(enabled, setEnabled, api).catch((e) => { - setError(TalerError.fromException(e)); + async function handleOpen(): Promise<void> { + const nextValue = !enabled; + await api.wallet.call(WalletApiOperation.SetDevMode, { + devModeEnabled: nextValue, }); - }; + setEnabled(nextValue); + return; + } useEffect(() => { async function getValue(): Promise<void> { @@ -37,24 +44,9 @@ export function useWalletDevMode(): ToggleHandler { } getValue(); }, []); + return { value: enabled, - button: { - onClick: enabled === undefined ? undefined : toggle, - error, - }, + toggle: handleOpen, }; } - -async function handleOpen( - currentValue: undefined | boolean, - onChange: (value: boolean) => void, - api: ReturnType<typeof useBackendContext>, -): Promise<void> { - const nextValue = !currentValue; - await api.wallet.call(WalletApiOperation.SetDevMode, { - devModeEnabled: nextValue, - }); - onChange(nextValue); - return; -} |