summaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui/src/paths/admin
diff options
context:
space:
mode:
Diffstat (limited to 'packages/merchant-backoffice-ui/src/paths/admin')
-rw-r--r--packages/merchant-backoffice-ui/src/paths/admin/create/Create.stories.tsx31
-rw-r--r--packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx48
-rw-r--r--packages/merchant-backoffice-ui/src/paths/admin/create/stories.tsx33
-rw-r--r--packages/merchant-backoffice-ui/src/paths/admin/list/TableActive.tsx4
4 files changed, 79 insertions, 37 deletions
diff --git a/packages/merchant-backoffice-ui/src/paths/admin/create/Create.stories.tsx b/packages/merchant-backoffice-ui/src/paths/admin/create/Create.stories.tsx
index ec54dc150..39fdb6bdc 100644
--- a/packages/merchant-backoffice-ui/src/paths/admin/create/Create.stories.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/admin/create/Create.stories.tsx
@@ -20,8 +20,8 @@
*/
import { h, VNode, FunctionalComponent } from "preact";
-import { ConfigContextProvider } from "../../../context/config.js";
import { CreatePage as TestedComponent } from "./CreatePage.js";
+import { MerchantApiProviderTesting } from "@gnu-taler/web-util/browser";
export default {
title: "Pages/Instance/Create",
@@ -37,19 +37,32 @@ function createExample<Props>(
props: Partial<Props>,
) {
const r = (args: any) => (
- <ConfigContextProvider
+ <MerchantApiProviderTesting
value={{
- currency: "ARS",
- version: "1",
- currencies: {
- currency: "TESTKUDOS"
+ cancelRequest: () => {},
+ config: {
+ currency: "ARS",
+ version: "1",
+ currencies: {
+ "ASD": {
+ name: "testkudos",
+ alt_unit_names: {},
+ num_fractional_input_digits: 1,
+ num_fractional_normal_digits: 1,
+ num_fractional_trailing_zero_digits: 1,
+ }
+ },
+ exchanges: [],
+ name: "taler-merchant"
},
- exchanges: [],
- name: "taler-merchant"
+ hints: [],
+ lib: {} as any,
+ onActivity: (() => {}) as any,
+ url: new URL("asdasd"),
}}
>
<Component {...args} />
- </ConfigContextProvider>
+ </MerchantApiProviderTesting>
);
r.args = props;
return r;
diff --git a/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx b/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx
index cbda65bfe..440cd2b07 100644
--- a/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx
@@ -17,16 +17,18 @@
*
* @author Sebastian Javier Marchano (sebasjm)
*/
-import { useTranslationContext } from "@gnu-taler/web-util/browser";
-import { Fragment, h, VNode } from "preact";
+import {
+ useMerchantApiContext,
+ useTranslationContext,
+} from "@gnu-taler/web-util/browser";
+import { Fragment, VNode, h } from "preact";
import { useState } from "preact/hooks";
import { NotificationCard } from "../../../components/menu/index.js";
-import { AccessToken, MerchantBackend } from "../../../declaration.js";
-import { useAdminAPI, useInstanceAPI } from "../../../hooks/instance.js";
+import { MerchantBackend } from "../../../declaration.js";
+import { useAdminAPI } from "../../../hooks/instance.js";
+import { useSessionContext } from "../../../context/session.js";
import { Notification } from "../../../utils/types.js";
import { CreatePage } from "./CreatePage.js";
-import { useCredentialsChecker } from "../../../hooks/backend.js";
-import { useBackendContext } from "../../../context/backend.js";
interface Props {
onBack?: () => void;
@@ -39,8 +41,8 @@ export default function Create({ onBack, onConfirm, forceId }: Props): VNode {
const { createInstance } = useAdminAPI();
const [notif, setNotif] = useState<Notification | undefined>(undefined);
const { i18n } = useTranslationContext();
- const { requestNewLoginToken } = useCredentialsChecker()
- const { url: backendURL, updateToken } = useBackendContext()
+ const { lib } = useMerchantApiContext();
+ const { state, logIn } = useSessionContext();
return (
<Fragment>
@@ -53,15 +55,29 @@ export default function Create({ onBack, onConfirm, forceId }: Props): VNode {
d: MerchantBackend.Instances.InstanceConfigurationMessage,
) => {
try {
- await createInstance(d)
+ await createInstance(d);
if (d.auth.token) {
- const resp = await requestNewLoginToken(backendURL, d.auth.token as AccessToken)
- if (resp.valid) {
- const { token, expiration } = resp
- updateToken({ token, expiration });
- } else {
- updateToken(undefined)
+ const result = await lib.authenticate.createAccessToken(
+ d.auth.token,
+ {
+ scope: "write",
+ duration: {
+ d_us: "forever",
+ },
+ refreshable: true,
+ },
+ );
+ if (result.type === "ok") {
+ const { access_token } = result.body;
+ logIn({ token: access_token });
}
+ // const resp = await requestNewLoginToken(backendURL.href, d.auth.token as AccessToken)
+ // if (resp.valid) {
+ // const { token, expiration } = resp
+ // updateToken({ token, expiration });
+ // } else {
+ // updateToken(undefined)
+ // }
}
onConfirm();
} catch (ex) {
@@ -72,7 +88,7 @@ export default function Create({ onBack, onConfirm, forceId }: Props): VNode {
description: ex.message,
});
} else {
- console.error(ex)
+ console.error(ex);
}
}
}}
diff --git a/packages/merchant-backoffice-ui/src/paths/admin/create/stories.tsx b/packages/merchant-backoffice-ui/src/paths/admin/create/stories.tsx
index 9a947c9d5..8166dc739 100644
--- a/packages/merchant-backoffice-ui/src/paths/admin/create/stories.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/admin/create/stories.tsx
@@ -19,9 +19,9 @@
* @author Sebastian Javier Marchano (sebasjm)
*/
-import { h, VNode, FunctionalComponent } from "preact";
-import { ConfigContextProvider } from "../../../context/config.js";
+import { FunctionalComponent, h } from "preact";
import { CreatePage as TestedComponent } from "./CreatePage.js";
+import { MerchantApiProviderTesting } from "@gnu-taler/web-util/browser";
export default {
title: "Pages/Instance/Create",
@@ -37,19 +37,32 @@ function createExample<Props>(
props: Partial<Props>,
) {
const component = (args: any) => (
- <ConfigContextProvider
+ <MerchantApiProviderTesting
value={{
- currency: "TESTKUDOS",
- version: "1",
- currencies: {
- currency: "TESTKUDOS"
+ cancelRequest: () => {},
+ config: {
+ currency: "ARS",
+ version: "1",
+ currencies: {
+ "ASD": {
+ name: "testkudos",
+ alt_unit_names: {},
+ num_fractional_input_digits: 1,
+ num_fractional_normal_digits: 1,
+ num_fractional_trailing_zero_digits: 1,
+ }
+ },
+ exchanges: [],
+ name: "taler-merchant"
},
- exchanges: [],
- name: "taler-merchant"
+ hints: [],
+ lib: {} as any,
+ onActivity: (() => {}) as any,
+ url: new URL("asdasd"),
}}
>
<Internal {...(props as any)} />
- </ConfigContextProvider>
+ </MerchantApiProviderTesting>
);
return { component, props };
}
diff --git a/packages/merchant-backoffice-ui/src/paths/admin/list/TableActive.tsx b/packages/merchant-backoffice-ui/src/paths/admin/list/TableActive.tsx
index 711a5a4f0..bc18bb352 100644
--- a/packages/merchant-backoffice-ui/src/paths/admin/list/TableActive.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/admin/list/TableActive.tsx
@@ -23,7 +23,7 @@ import { useTranslationContext } from "@gnu-taler/web-util/browser";
import { h, VNode } from "preact";
import { StateUpdater, useEffect, useState } from "preact/hooks";
import { MerchantBackend } from "../../../declaration.js";
-import { useSessionState } from "../../../hooks/session.js";
+import { useSessionContext } from "../../../context/session.js";
interface Props {
instances: MerchantBackend.Instances.Instance[];
@@ -149,7 +149,7 @@ function Table({
onPurge,
}: TableProps): VNode {
const { i18n } = useTranslationContext();
- const { impersonate } = useSessionState()
+ const { impersonate } = useSessionContext()
return (
<div class="table-container">
<table class="table is-fullwidth is-striped is-hoverable is-fullwidth">