diff options
Diffstat (limited to 'packages/merchant-backoffice-ui/src/components')
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)`} /> |