diff options
Diffstat (limited to 'packages/merchant-backoffice-ui/src/components')
8 files changed, 30 insertions, 32 deletions
diff --git a/packages/merchant-backoffice-ui/src/components/form/InputCurrency.tsx b/packages/merchant-backoffice-ui/src/components/form/InputCurrency.tsx index f60508504..76d38db84 100644 --- a/packages/merchant-backoffice-ui/src/components/form/InputCurrency.tsx +++ b/packages/merchant-backoffice-ui/src/components/form/InputCurrency.tsx @@ -20,9 +20,9 @@ */ import { useMerchantApiContext } from "@gnu-taler/web-util/browser"; import { ComponentChildren, h, VNode } from "preact"; -import { Amount } from "../../declaration.js"; import { InputWithAddon } from "./InputWithAddon.js"; import { InputProps } from "./useField.js"; +import { AmountString } from "@gnu-taler/taler-util"; export interface Props<T> extends InputProps<T> { expand?: boolean; @@ -57,7 +57,7 @@ export function InputCurrency<T>({ addonAfter={addonAfter} inputType="number" expand={expand} - toStr={(v?: Amount) => v?.split(":")[1] || ""} + toStr={(v?: AmountString) => v?.split(":")[1] || ""} fromStr={(v: string) => (!v ? undefined : `${config.currency}:${v}`)} inputExtra={{ min: 0 }} > diff --git a/packages/merchant-backoffice-ui/src/components/form/InputPaytoForm.tsx b/packages/merchant-backoffice-ui/src/components/form/InputPaytoForm.tsx index 7eba8b0b5..3337e5f57 100644 --- a/packages/merchant-backoffice-ui/src/components/form/InputPaytoForm.tsx +++ b/packages/merchant-backoffice-ui/src/components/form/InputPaytoForm.tsx @@ -233,11 +233,11 @@ export function InputPaytoForm<T>({ }, [str]) // const submit = useCallback((): void => { - // // const accounts: MerchantBackend.BankAccounts.AccountAddDetails[] = paytos; + // // const accounts: TalerMerchantApi.AccountAddDetails[] = paytos; // // const alreadyExists = // // accounts.findIndex((x) => x.payto_uri === paytoURL) !== -1; // // if (!alreadyExists) { - // const newValue: MerchantBackend.BankAccounts.AccountAddDetails = { + // const newValue: TalerMerchantApi.AccountAddDetails = { // payto_uri: paytoURL, // }; // if (value.auth) { diff --git a/packages/merchant-backoffice-ui/src/components/form/InputStock.tsx b/packages/merchant-backoffice-ui/src/components/form/InputStock.tsx index 5c98f7311..e47259732 100644 --- a/packages/merchant-backoffice-ui/src/components/form/InputStock.tsx +++ b/packages/merchant-backoffice-ui/src/components/form/InputStock.tsx @@ -18,16 +18,16 @@ * * @author Sebastian Javier Marchano (sebasjm) */ -import { useTranslationContext } from "@gnu-taler/web-util/browser"; +import { Location, useTranslationContext } from "@gnu-taler/web-util/browser"; import { Fragment, h } from "preact"; import { useLayoutEffect, useState } from "preact/hooks"; -import { MerchantBackend, Timestamp } from "../../declaration.js"; import { FormErrors, FormProvider } from "./FormProvider.js"; import { InputDate } from "./InputDate.js"; import { InputGroup } from "./InputGroup.js"; import { InputLocation } from "./InputLocation.js"; import { InputNumber } from "./InputNumber.js"; import { InputProps, useField } from "./useField.js"; +import { TalerMerchantApi } from "@gnu-taler/taler-util"; export interface Props<T> extends InputProps<T> { alreadyExist?: boolean; @@ -39,7 +39,7 @@ export interface Stock { current: number; lost: number; sold: number; - address?: MerchantBackend.Location; + address?: TalerMerchantApi.Location; nextRestock?: Timestamp; } diff --git a/packages/merchant-backoffice-ui/src/components/form/InputTaxes.tsx b/packages/merchant-backoffice-ui/src/components/form/InputTaxes.tsx index 984b496e7..4392c7659 100644 --- a/packages/merchant-backoffice-ui/src/components/form/InputTaxes.tsx +++ b/packages/merchant-backoffice-ui/src/components/form/InputTaxes.tsx @@ -22,18 +22,18 @@ import { useTranslationContext } from "@gnu-taler/web-util/browser"; import { h, VNode } from "preact"; import { useCallback, useState } from "preact/hooks"; import * as yup from "yup"; -import { MerchantBackend } from "../../declaration.js"; import { TaxSchema as schema } from "../../schemas/index.js"; import { FormErrors, FormProvider } from "./FormProvider.js"; import { Input } from "./Input.js"; import { InputGroup } from "./InputGroup.js"; import { InputProps, useField } from "./useField.js"; +import { TalerMerchantApi } from "@gnu-taler/taler-util"; export interface Props<T> extends InputProps<T> { isValid?: (e: any) => boolean; } -type Entity = MerchantBackend.Tax; +type Entity = TalerMerchantApi.Tax; export function InputTaxes<T>({ name, readonly, diff --git a/packages/merchant-backoffice-ui/src/components/product/InventoryProductForm.tsx b/packages/merchant-backoffice-ui/src/components/product/InventoryProductForm.tsx index 25b1f0e2d..52ac2a1fe 100644 --- a/packages/merchant-backoffice-ui/src/components/product/InventoryProductForm.tsx +++ b/packages/merchant-backoffice-ui/src/components/product/InventoryProductForm.tsx @@ -16,24 +16,24 @@ import { useTranslationContext } from "@gnu-taler/web-util/browser"; import { h, VNode } from "preact"; import { useState } from "preact/hooks"; -import { MerchantBackend, WithId } from "../../declaration.js"; import { ProductMap } from "../../paths/instance/orders/create/CreatePage.js"; import { FormErrors, FormProvider } from "../form/FormProvider.js"; import { InputNumber } from "../form/InputNumber.js"; import { InputSearchOnList } from "../form/InputSearchOnList.js"; +import { TalerMerchantApi } from "@gnu-taler/taler-util"; type Form = { - product: MerchantBackend.Products.ProductDetail & WithId; + product: TalerMerchantApi.ProductDetail & WithId; quantity: number; }; interface Props { currentProducts: ProductMap; onAddProduct: ( - product: MerchantBackend.Products.ProductDetail & WithId, + product: TalerMerchantApi.ProductDetail & WithId, quantity: number, ) => void; - inventory: (MerchantBackend.Products.ProductDetail & WithId)[]; + inventory: (TalerMerchantApi.ProductDetail & WithId)[]; } export function InventoryProductForm({ diff --git a/packages/merchant-backoffice-ui/src/components/product/NonInventoryProductForm.tsx b/packages/merchant-backoffice-ui/src/components/product/NonInventoryProductForm.tsx index 8ddd9fa95..a127999fc 100644 --- a/packages/merchant-backoffice-ui/src/components/product/NonInventoryProductForm.tsx +++ b/packages/merchant-backoffice-ui/src/components/product/NonInventoryProductForm.tsx @@ -13,11 +13,11 @@ 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/> */ +import { AmountString, TalerMerchantApi } from "@gnu-taler/taler-util"; import { useTranslationContext } from "@gnu-taler/web-util/browser"; import { Fragment, h, VNode } from "preact"; import { useCallback, useEffect, useState } from "preact/hooks"; import * as yup from "yup"; -import { MerchantBackend } from "../../declaration.js"; import { useListener } from "../../hooks/listener.js"; import { NonInventoryProductSchema as schema } from "../../schemas/index.js"; import { FormErrors, FormProvider } from "../form/FormProvider.js"; @@ -27,7 +27,7 @@ import { InputImage } from "../form/InputImage.js"; import { InputNumber } from "../form/InputNumber.js"; import { InputTaxes } from "../form/InputTaxes.js"; -type Entity = MerchantBackend.Product; +type Entity = TalerMerchantApi.Product; interface Props { onAddProduct: (p: Entity) => Promise<void>; @@ -46,7 +46,7 @@ export function NonInventoryProductFrom({ }, [isEditing]); const [submitForm, addFormSubmitter] = useListener< - Partial<MerchantBackend.Product> | undefined + Partial<TalerMerchantApi.Product> | undefined >((result) => { if (result) { setShowCreateProduct(false); @@ -55,7 +55,7 @@ export function NonInventoryProductFrom({ taxes: result.taxes || [], description: result.description || "", image: result.image || "", - price: result.price || "", + price: (result.price || "") as AmountString, unit: result.unit || "", }); } @@ -136,7 +136,7 @@ interface NonInventoryProduct { unit: string; price: string; image: string; - taxes: MerchantBackend.Tax[]; + taxes: TalerMerchantApi.Tax[]; } export function ProductForm({ onSubscribe, initial }: ProductProps): VNode { @@ -144,7 +144,7 @@ export function ProductForm({ onSubscribe, initial }: ProductProps): VNode { taxes: [], ...initial, }); - let errors: FormErrors<Entity> = {}; + let errors: FormErrors<NonInventoryProduct> = {}; try { schema.validateSync(value, { abortEarly: false }); } catch (err) { @@ -159,7 +159,7 @@ export function ProductForm({ onSubscribe, initial }: ProductProps): VNode { } const submit = useCallback((): Entity | undefined => { - return value as MerchantBackend.Product; + return value as TalerMerchantApi.Product; }, [value]); const hasErrors = Object.keys(errors).some( diff --git a/packages/merchant-backoffice-ui/src/components/product/ProductForm.tsx b/packages/merchant-backoffice-ui/src/components/product/ProductForm.tsx index 11344cde3..468e5f635 100644 --- a/packages/merchant-backoffice-ui/src/components/product/ProductForm.tsx +++ b/packages/merchant-backoffice-ui/src/components/product/ProductForm.tsx @@ -20,13 +20,12 @@ */ import { - useMerchantApiContext, - useTranslationContext, + useTranslationContext } from "@gnu-taler/web-util/browser"; import { h } from "preact"; import { useCallback, useEffect, useState } from "preact/hooks"; import * as yup from "yup"; -import { MerchantBackend } from "../../declaration.js"; +import { useSessionContext } from "../../context/session.js"; import { ProductCreateSchema as createSchema, ProductUpdateSchema as updateSchema, @@ -39,9 +38,9 @@ import { InputNumber } from "../form/InputNumber.js"; import { InputStock, Stock } from "../form/InputStock.js"; import { InputTaxes } from "../form/InputTaxes.js"; import { InputWithAddon } from "../form/InputWithAddon.js"; -import { useSessionContext } from "../../context/session.js"; +import { AmountString, TalerMerchantApi } from "@gnu-taler/taler-util"; -type Entity = MerchantBackend.Products.ProductDetail & { product_id: string }; +type Entity = TalerMerchantApi.ProductDetail & { product_id: string }; interface Props { onSubscribe: (c?: () => Entity | undefined) => void; @@ -55,7 +54,7 @@ export function ProductForm({ onSubscribe, initial, alreadyExist }: Props) { description_i18n: {}, taxes: [], next_restock: { t_s: "never" }, - price: ":0", + price: ":0" as AmountString, ...initial, stock: !initial || initial.total_stock === -1 @@ -108,7 +107,7 @@ export function ProductForm({ onSubscribe, initial, alreadyExist }: Props) { delete value.minimum_age; } - return value as MerchantBackend.Products.ProductDetail & { + return value as TalerMerchantApi.ProductDetail & { product_id: string; }; }, [value]); diff --git a/packages/merchant-backoffice-ui/src/components/product/ProductList.tsx b/packages/merchant-backoffice-ui/src/components/product/ProductList.tsx index d89c5371b..4fff66fd7 100644 --- a/packages/merchant-backoffice-ui/src/components/product/ProductList.tsx +++ b/packages/merchant-backoffice-ui/src/components/product/ProductList.tsx @@ -13,18 +13,17 @@ 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/> */ -import { Amounts } from "@gnu-taler/taler-util"; +import { Amounts, TalerMerchantApi } from "@gnu-taler/taler-util"; import { h, VNode } from "preact"; import emptyImage from "../../assets/empty.png"; import { useTranslationContext } from "@gnu-taler/web-util/browser"; -import { MerchantBackend } from "../../declaration.js"; interface Props { - list: MerchantBackend.Product[]; + list: TalerMerchantApi.Product[]; actions?: { name: string; tooltip: string; - handler: (d: MerchantBackend.Product, index: number) => void; + handler: (d: TalerMerchantApi.Product, index: number) => void; }[]; } export function ProductList({ list, actions = [] }: Props): VNode { @@ -60,7 +59,7 @@ export function ProductList({ list, actions = [] }: Props): VNode { : Amounts.stringify( Amounts.mult( Amounts.parseOrThrow(entry.price), - entry.quantity, + entry.quantity ?? 0 ).amount, ); |