diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/components')
-rw-r--r-- | packages/taler-wallet-webextension/src/components/EnabledBySettings.tsx (renamed from packages/taler-wallet-webextension/src/components/JustInDevMode.tsx) | 19 | ||||
-rw-r--r-- | packages/taler-wallet-webextension/src/components/ErrorTalerOperation.tsx | 7 | ||||
-rw-r--r-- | packages/taler-wallet-webextension/src/components/TermsOfService/utils.ts | 16 |
3 files changed, 29 insertions, 13 deletions
diff --git a/packages/taler-wallet-webextension/src/components/JustInDevMode.tsx b/packages/taler-wallet-webextension/src/components/EnabledBySettings.tsx index a29bea791..6f666d301 100644 --- a/packages/taler-wallet-webextension/src/components/JustInDevMode.tsx +++ b/packages/taler-wallet-webextension/src/components/EnabledBySettings.tsx @@ -14,14 +14,25 @@ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ import { ComponentChildren, Fragment, h, VNode } from "preact"; -import { useDevContext } from "../context/devContext.js"; +import { useSettings } from "../hooks/useSettings.js"; +import { Settings } from "../platform/api.js"; -export function JustInDevMode({ +export function EnabledBySettings<K extends keyof Settings>({ children, + value, + name, }: { + name: K; + value?: Settings[K]; children: ComponentChildren; }): VNode { - const { devMode } = useDevContext(); - if (!devMode) return <Fragment />; + const [settings] = useSettings(); + if (value === undefined) { + if (!settings[name]) return <Fragment />; + return <Fragment>{children}</Fragment>; + } + if (settings[name] !== value) { + return <Fragment />; + } return <Fragment>{children}</Fragment>; } diff --git a/packages/taler-wallet-webextension/src/components/ErrorTalerOperation.tsx b/packages/taler-wallet-webextension/src/components/ErrorTalerOperation.tsx index f8203f38a..2979c28e5 100644 --- a/packages/taler-wallet-webextension/src/components/ErrorTalerOperation.tsx +++ b/packages/taler-wallet-webextension/src/components/ErrorTalerOperation.tsx @@ -17,8 +17,8 @@ import { TalerErrorDetail, TranslatedString } from "@gnu-taler/taler-util"; import { Fragment, h, VNode } from "preact"; import { useState } from "preact/hooks"; import arrowDown from "../svg/chevron-down.svg"; -import { useDevContext } from "../context/devContext.js"; import { ErrorBox } from "./styled/index.js"; +import { EnabledBySettings } from "./EnabledBySettings.js"; export function ErrorTalerOperation({ title, @@ -27,7 +27,6 @@ export function ErrorTalerOperation({ title?: TranslatedString; error?: TalerErrorDetail; }): VNode | null { - const { devMode } = useDevContext(); const [showErrorDetail, setShowErrorDetail] = useState(false); if (!title || !error) return null; @@ -62,11 +61,11 @@ export function ErrorTalerOperation({ <b>{error.hint}</b> {!errorHint ? "" : `: ${errorHint}`}{" "} </div> </div> - {devMode && ( + <EnabledBySettings name="showJsonOnError"> <div style={{ textAlign: "left", overflowX: "auto" }}> <pre>{JSON.stringify(error, undefined, 2)}</pre> </div> - )} + </EnabledBySettings> </Fragment> )} </ErrorBox> diff --git a/packages/taler-wallet-webextension/src/components/TermsOfService/utils.ts b/packages/taler-wallet-webextension/src/components/TermsOfService/utils.ts index 391932574..fdca78ee5 100644 --- a/packages/taler-wallet-webextension/src/components/TermsOfService/utils.ts +++ b/packages/taler-wallet-webextension/src/components/TermsOfService/utils.ts @@ -14,7 +14,11 @@ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ -import { ExchangeTosStatus, GetExchangeTosResult } from "@gnu-taler/taler-util"; +import { + ExchangeTosStatus, + GetExchangeTosResult, + Logger, +} from "@gnu-taler/taler-util"; export function buildTermsOfServiceState( tos: GetExchangeTosResult, @@ -27,6 +31,8 @@ export function buildTermsOfServiceState( return { content, status: tos.tosStatus, version: tos.currentEtag }; } +const logger = new Logger("termsofservice"); + function parseTermsOfServiceContent( type: string, text: string, @@ -36,28 +42,28 @@ function parseTermsOfServiceContent( const document = new DOMParser().parseFromString(text, "text/xml"); return { type: "xml", document }; } catch (e) { - console.log(e); + logger.error("error parsing xml", e); } } else if (type === "text/html") { try { const href = new URL(text); return { type: "html", href }; } catch (e) { - console.log(e); + logger.error("error parsing url", e); } } else if (type === "text/json") { try { const data = JSON.parse(text); return { type: "json", data }; } catch (e) { - console.log(e); + logger.error("error parsing json", e); } } else if (type === "text/pdf") { try { const location = new URL(text); return { type: "pdf", location }; } catch (e) { - console.log(e); + logger.error("error parsing url", e); } } const content = text; |