summaryrefslogtreecommitdiff
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.tsx4
-rw-r--r--packages/merchant-backoffice-ui/src/components/form/InputPaytoForm.tsx4
-rw-r--r--packages/merchant-backoffice-ui/src/components/form/InputStock.tsx6
-rw-r--r--packages/merchant-backoffice-ui/src/components/form/InputTaxes.tsx4
-rw-r--r--packages/merchant-backoffice-ui/src/components/product/InventoryProductForm.tsx8
-rw-r--r--packages/merchant-backoffice-ui/src/components/product/NonInventoryProductForm.tsx14
-rw-r--r--packages/merchant-backoffice-ui/src/components/product/ProductForm.tsx13
-rw-r--r--packages/merchant-backoffice-ui/src/components/product/ProductList.tsx9
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,
);