aboutsummaryrefslogtreecommitdiff
path: root/packages/web-util/src/context
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2023-02-08 17:36:26 -0300
committerSebastian <sebasjm@gmail.com>2023-02-08 17:36:26 -0300
commitbe01d1479cf650fe8eb0c8e567620abfa4544e1e (patch)
treea1a0e6f45e6e2fdacca9df77aeb7cf1a065b312d /packages/web-util/src/context
parentf7982ed99672709908d378c7abc02300440a4ac2 (diff)
downloadwallet-core-be01d1479cf650fe8eb0c8e567620abfa4544e1e.tar.xz
move request api to web-util
Diffstat (limited to 'packages/web-util/src/context')
-rw-r--r--packages/web-util/src/context/api.ts43
-rw-r--r--packages/web-util/src/context/index.ts4
2 files changed, 46 insertions, 1 deletions
diff --git a/packages/web-util/src/context/api.ts b/packages/web-util/src/context/api.ts
new file mode 100644
index 000000000..81586bd35
--- /dev/null
+++ b/packages/web-util/src/context/api.ts
@@ -0,0 +1,43 @@
+/*
+ This file is part of GNU Taler
+ (C) 2021-2023 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 { ComponentChildren, createContext, h, VNode } from "preact";
+import { useContext } from "preact/hooks";
+import { defaultRequestHandler } from "../utils/request.js";
+
+interface Type {
+ request: typeof defaultRequestHandler;
+}
+
+const Context = createContext<Type>({
+ request: defaultRequestHandler,
+});
+
+export const useApiContext = (): Type => useContext(Context);
+export const ApiContextProvider = ({
+ children,
+ value,
+}: {
+ value: Type;
+ children: ComponentChildren;
+}): VNode => {
+ return h(Context.Provider, { value, children });
+};
diff --git a/packages/web-util/src/context/index.ts b/packages/web-util/src/context/index.ts
index 4bc1b22f2..9ed3ef645 100644
--- a/packages/web-util/src/context/index.ts
+++ b/packages/web-util/src/context/index.ts
@@ -1,5 +1,7 @@
+export { ApiContextProvider, useApiContext } from "./api.js";
export {
InternationalizationAPI,
TranslationProvider,
- useTranslationContext,
+ useTranslationContext
} from "./translation.js";
+