aboutsummaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'packages/merchant-backoffice-ui/src/components')
-rw-r--r--packages/merchant-backoffice-ui/src/components/form/InputCurrency.tsx3
-rw-r--r--packages/merchant-backoffice-ui/src/components/instance/DefaultInstanceFormFields.tsx5
-rw-r--r--packages/merchant-backoffice-ui/src/components/menu/SideBar.tsx21
-rw-r--r--packages/merchant-backoffice-ui/src/components/menu/index.tsx13
-rw-r--r--packages/merchant-backoffice-ui/src/components/product/ProductForm.tsx13
5 files changed, 21 insertions, 34 deletions
diff --git a/packages/merchant-backoffice-ui/src/components/form/InputCurrency.tsx b/packages/merchant-backoffice-ui/src/components/form/InputCurrency.tsx
index 76d38db84..11396b88e 100644
--- a/packages/merchant-backoffice-ui/src/components/form/InputCurrency.tsx
+++ b/packages/merchant-backoffice-ui/src/components/form/InputCurrency.tsx
@@ -23,6 +23,7 @@ import { ComponentChildren, h, VNode } from "preact";
import { InputWithAddon } from "./InputWithAddon.js";
import { InputProps } from "./useField.js";
import { AmountString } from "@gnu-taler/taler-util";
+import { useSessionContext } from "../../context/session.js";
export interface Props<T> extends InputProps<T> {
expand?: boolean;
@@ -43,7 +44,7 @@ export function InputCurrency<T>({
children,
side,
}: Props<keyof T>): VNode {
- const { config } = useMerchantApiContext();
+ const { config } = useSessionContext();
return (
<InputWithAddon<T>
name={name}
diff --git a/packages/merchant-backoffice-ui/src/components/instance/DefaultInstanceFormFields.tsx b/packages/merchant-backoffice-ui/src/components/instance/DefaultInstanceFormFields.tsx
index 2a24dfbe2..dd41b6fbd 100644
--- a/packages/merchant-backoffice-ui/src/components/instance/DefaultInstanceFormFields.tsx
+++ b/packages/merchant-backoffice-ui/src/components/instance/DefaultInstanceFormFields.tsx
@@ -33,6 +33,7 @@ import { InputLocation } from "../form/InputLocation.js";
import { InputSelector } from "../form/InputSelector.js";
import { InputToggle } from "../form/InputToggle.js";
import { InputWithAddon } from "../form/InputWithAddon.js";
+import { useSessionContext } from "../../context/session.js";
export function DefaultInstanceFormFields({
readonlyId,
@@ -42,13 +43,13 @@ export function DefaultInstanceFormFields({
showId: boolean;
}): VNode {
const { i18n } = useTranslationContext();
- const { url: backendUrl } = useMerchantApiContext();
+ const { state } = useSessionContext();
return (
<Fragment>
{showId && (
<InputWithAddon<Entity>
name="id"
- addonBefore={new URL("instances/", backendUrl.href).href}
+ addonBefore={new URL("instances/", state.backendUrl.href).href}
readonly={readonlyId}
label={i18n.str`Identifier`}
tooltip={i18n.str`Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.`}
diff --git a/packages/merchant-backoffice-ui/src/components/menu/SideBar.tsx b/packages/merchant-backoffice-ui/src/components/menu/SideBar.tsx
index 9819c1911..2090704d9 100644
--- a/packages/merchant-backoffice-ui/src/components/menu/SideBar.tsx
+++ b/packages/merchant-backoffice-ui/src/components/menu/SideBar.tsx
@@ -19,15 +19,12 @@
* @author Sebastian Javier Marchano (sebasjm)
*/
-import {
- useMerchantApiContext,
- useTranslationContext,
-} from "@gnu-taler/web-util/browser";
+import { TalerError } from "@gnu-taler/taler-util";
+import { useTranslationContext } from "@gnu-taler/web-util/browser";
import { Fragment, VNode, h } from "preact";
import { useSessionContext } from "../../context/session.js";
import { useInstanceKYCDetails } from "../../hooks/instance.js";
import { LangSelector } from "./LangSelector.js";
-import { TalerError } from "@gnu-taler/taler-util";
// const GIT_HASH = typeof __GIT_HASH__ !== "undefined" ? __GIT_HASH__ : undefined;
const VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : undefined;
@@ -38,6 +35,7 @@ interface Props {
export function Sidebar({ mobile }: Props): VNode {
const { i18n } = useTranslationContext();
+ const { state, logOut, config } = useSessionContext();
const kycStatus = useInstanceKYCDetails();
const needKYC =
@@ -45,11 +43,9 @@ export function Sidebar({ mobile }: Props): VNode {
!(kycStatus instanceof TalerError) &&
kycStatus.type === "ok" &&
!!kycStatus.body;
- const { state, logOut } = useSessionContext();
const isLoggedIn = state.status === "loggedIn";
const hasToken = isLoggedIn && state.token !== undefined;
- const { config, url: backendURL } = useMerchantApiContext();
-
+
return (
<aside
class="aside is-placed-left is-expanded"
@@ -195,10 +191,7 @@ export function Sidebar({ mobile }: Props): VNode {
</p>
<ul class="menu-list">
<li>
- <a
- class="has-icon is-state-info is-hoverable"
- href="/interface"
- >
+ <a class="has-icon is-state-info is-hoverable" href="/interface">
<span class="icon">
<i class="mdi mdi-newspaper" />
</span>
@@ -212,9 +205,7 @@ export function Sidebar({ mobile }: Props): VNode {
<span style={{ width: "3rem" }} class="icon">
<i class="mdi mdi-web" />
</span>
- <span class="menu-item-label">
- {backendURL.hostname}
- </span>
+ <span class="menu-item-label">{state.backendUrl.hostname}</span>
</div>
</li>
<li>
diff --git a/packages/merchant-backoffice-ui/src/components/menu/index.tsx b/packages/merchant-backoffice-ui/src/components/menu/index.tsx
index aa955db4e..a35c07ace 100644
--- a/packages/merchant-backoffice-ui/src/components/menu/index.tsx
+++ b/packages/merchant-backoffice-ui/src/components/menu/index.tsx
@@ -104,7 +104,7 @@ export function Menu(_p: MenuProps): VNode {
? getInstanceTitle(path, state.instance)
: getAdminTitle(path, state.instance);
- const isLoggedIn =state.status === "loggedIn";
+ const isLoggedIn = state.status === "loggedIn";
return (
<WithTitle title={titleWithSubtitle}>
@@ -117,11 +117,9 @@ export function Menu(_p: MenuProps): VNode {
title={titleWithSubtitle}
/>
- {isLoggedIn && (
- <Sidebar mobile={mobileOpen} />
- )}
+ {isLoggedIn && <Sidebar mobile={mobileOpen} />}
- {state.status !== "loggedOut" && state.impersonate !== undefined && (
+ {state.status !== "loggedOut" && state.impersonated && (
<nav
class="level"
style={{
@@ -137,9 +135,8 @@ export function Menu(_p: MenuProps): VNode {
.{" "}
<a
href="#/instances"
- onClick={(e) => {
+ onClick={() => {
deImpersonate();
- e.preventDefault();
}}
>
go back
@@ -228,7 +225,7 @@ export function NotYetReadyAppMenu({ title }: NotYetReadyAppMenuProps): VNode {
useEffect(() => {
document.title = `Taler Backoffice: ${title}`;
}, [title]);
-
+
const isLoggedIn = state.status === "loggedIn";
return (
diff --git a/packages/merchant-backoffice-ui/src/components/product/ProductForm.tsx b/packages/merchant-backoffice-ui/src/components/product/ProductForm.tsx
index 781d2de2c..c6d687b85 100644
--- a/packages/merchant-backoffice-ui/src/components/product/ProductForm.tsx
+++ b/packages/merchant-backoffice-ui/src/components/product/ProductForm.tsx
@@ -20,13 +20,11 @@
*/
import { AmountString, TalerMerchantApi } from "@gnu-taler/taler-util";
-import {
- useMerchantApiContext,
- useTranslationContext
-} from "@gnu-taler/web-util/browser";
+import { useTranslationContext } from "@gnu-taler/web-util/browser";
import { h } from "preact";
import { useCallback, useEffect, useState } from "preact/hooks";
import * as yup from "yup";
+import { useSessionContext } from "../../context/session.js";
import {
ProductCreateSchema as createSchema,
ProductUpdateSchema as updateSchema,
@@ -88,7 +86,7 @@ export function ProductForm({ onSubscribe, initial, alreadyExist }: Props) {
);
const submit = useCallback((): Entity | undefined => {
- const stock = (value).stock;
+ const stock = value.stock;
if (!stock) {
value.total_stock = -1;
@@ -116,9 +114,8 @@ export function ProductForm({ onSubscribe, initial, alreadyExist }: Props) {
onSubscribe(hasErrors ? undefined : submit);
}, [submit, hasErrors]);
- const { url: backendUrl } = useMerchantApiContext();
const { i18n } = useTranslationContext();
-
+ const { state } = useSessionContext();
return (
<div>
<FormProvider<Entity>
@@ -130,7 +127,7 @@ export function ProductForm({ onSubscribe, initial, alreadyExist }: Props) {
{alreadyExist ? undefined : (
<InputWithAddon<Entity>
name="product_id"
- addonBefore={new URL("product/", backendUrl.href).href}
+ addonBefore={new URL("product/", state.backendUrl.href).href}
label={i18n.str`ID`}
tooltip={i18n.str`product identification to use in URLs (for internal use only)`}
/>