aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/context
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension/src/context')
-rw-r--r--packages/taler-wallet-webextension/src/context/alert.ts11
-rw-r--r--packages/taler-wallet-webextension/src/context/translation.ts92
2 files changed, 6 insertions, 97 deletions
diff --git a/packages/taler-wallet-webextension/src/context/alert.ts b/packages/taler-wallet-webextension/src/context/alert.ts
index 2b088abd3..b8918dc58 100644
--- a/packages/taler-wallet-webextension/src/context/alert.ts
+++ b/packages/taler-wallet-webextension/src/context/alert.ts
@@ -25,6 +25,7 @@ import { useContext, useState } from "preact/hooks";
import { HookError } from "../hooks/useAsyncAsHook.js";
import { SafeHandler, withSafe } from "../mui/handlers.js";
import { BackgroundError } from "../wxApi.js";
+import { useTranslationContext } from "@gnu-taler/web-util/lib/index.browser";
export type AlertType = "info" | "warning" | "error" | "success";
@@ -55,10 +56,7 @@ type Type = {
* @deprecated use safely
*/
pushAlertOnError: <T>(h: (p: T) => Promise<void>) => SafeHandler<T>;
- safely: <T>(
- h: (p: T) => Promise<void>,
- error: TranslatedString,
- ) => SafeHandler<T>;
+ safely: <T>(name: string, h: (p: T) => Promise<void>) => SafeHandler<T>;
};
const initial: Type = {
@@ -113,10 +111,13 @@ export const AlertProvider = ({ children }: Props): VNode => {
});
}
+ const { i18n } = useTranslationContext();
+
function safely<T>(
+ name: string,
handler: (p: T) => Promise<void>,
- message: TranslatedString,
): SafeHandler<T> {
+ const message = i18n.str`Error was thrown trying to: "${name}"`;
return withSafe(handler, (e) => {
const a = alertFromError(message, e);
pushAlert(a);
diff --git a/packages/taler-wallet-webextension/src/context/translation.ts b/packages/taler-wallet-webextension/src/context/translation.ts
deleted file mode 100644
index bc7e4bee2..000000000
--- a/packages/taler-wallet-webextension/src/context/translation.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- This file is part of GNU Taler
- (C) 2022 Taler Systems S.A.
-
- GNU Taler is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
- */
-
-/**
- *
- * @author Sebastian Javier Marchano (sebasjm)
- */
-
-import { i18n, setupI18n } from "@gnu-taler/taler-util";
-import { createContext, h, VNode } from "preact";
-import { useContext, useEffect } from "preact/hooks";
-import { useLang } from "../hooks/useLang.js";
-import { strings } from "../i18n/strings.js";
-
-interface Type {
- lang: string;
- supportedLang: { [id in keyof typeof supportedLang]: string };
- changeLanguage: (l: string) => void;
- i18n: typeof i18n;
- isSaved: boolean;
-}
-
-const supportedLang = {
- es: "Español [es]",
- ja: "日本語 [ja]",
- en: "English [en]",
- fr: "Français [fr]",
- de: "Deutsch [de]",
- sv: "Svenska [sv]",
- it: "Italiano [it]",
- // ko: "한국어 [ko]",
- // ru: "Ру́сский язы́к [ru]",
- tr: "Türk [tr]",
- navigator: "Defined by navigator",
-};
-
-const initial = {
- lang: "en",
- supportedLang,
- changeLanguage: () => {
- // do not change anything
- },
- i18n,
- isSaved: false,
-};
-const Context = createContext<Type>(initial);
-
-interface Props {
- initial?: string;
- children: any;
- forceLang?: string;
-}
-
-export const TranslationProvider = ({
- initial,
- children,
- forceLang,
-}: Props): VNode => {
- const [lang, changeLanguage, isSaved] = useLang(initial);
- useEffect(() => {
- if (forceLang) {
- changeLanguage(forceLang);
- }
- });
- useEffect(() => {
- setupI18n(lang, strings);
- }, [lang]);
- if (forceLang) {
- setupI18n(forceLang, strings);
- } else {
- setupI18n(lang, strings);
- }
- return h(Context.Provider, {
- value: { lang, changeLanguage, supportedLang, i18n, isSaved },
- children,
- });
-};
-
-export const useTranslationContext = (): Type => useContext(Context);