taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 4611940d61d721dbd5b8cca9faed3795da113ca6
parent 058c900e15098ab2b5492ff8ca4a302d0d9eacc6
Author: Sebastian <sebasjm@gmail.com>
Date:   Sat, 15 Nov 2025 17:56:26 -0300

fix #10600

Diffstat:
Mpackages/merchant-backoffice-ui/src/Routing.tsx | 12++++++------
Mpackages/merchant-backoffice-ui/src/paths/instance/transfers/create/CreatePage.tsx | 44+++++++++++++++++++++++++-------------------
Mpackages/merchant-backoffice-ui/src/paths/instance/transfers/create/index.tsx | 5+++++
Mpackages/merchant-backoffice-ui/src/paths/instance/transfers/list/ListPage.tsx | 12++++++------
Mpackages/merchant-backoffice-ui/src/paths/instance/transfers/list/Table.tsx | 24++++++++++++------------
Mpackages/merchant-backoffice-ui/src/paths/instance/transfers/list/index.tsx | 48++++++++++++++++++++++--------------------------
Mpackages/taler-util/src/http-client/merchant.ts | 2++
7 files changed, 78 insertions(+), 69 deletions(-)

diff --git a/packages/merchant-backoffice-ui/src/Routing.tsx b/packages/merchant-backoffice-ui/src/Routing.tsx @@ -114,7 +114,7 @@ export enum InstancePaths { kyc = "/kyc", transfers_list = "/transfers", - transfers_new = "/transfer/new", + // transfers_new = "/transfer/new", templates_list = "/templates", templates_update = "/templates/:tid/update", @@ -518,11 +518,11 @@ export function Routing(_p: Props): VNode { <Route path={InstancePaths.transfers_list} component={TransferListPage} - onCreate={() => { - route(InstancePaths.transfers_new); - }} + // onCreate={() => { + // route(InstancePaths.transfers_new); + // }} /> - <Route + {/* <Route path={InstancePaths.transfers_new} component={TransferCreatePage} onConfirm={() => { @@ -531,7 +531,7 @@ export function Routing(_p: Props): VNode { onBack={() => { route(InstancePaths.transfers_list); }} - /> + /> */} {/* * * Token family pages */} diff --git a/packages/merchant-backoffice-ui/src/paths/instance/transfers/create/CreatePage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/transfers/create/CreatePage.tsx @@ -55,6 +55,12 @@ export interface Props { accounts: string[]; } +/** + * @deprecated this is going to be removed from the SPEC + * + * @param param0 + * @returns + */ export function CreatePage({ accounts, onCreated, onBack }: Props): VNode { const { i18n } = useTranslationContext(); @@ -84,23 +90,23 @@ export function CreatePage({ accounts, onCreated, onBack }: Props): VNode { ? i18n.str`URL doesn't have the right format` : undefined, }); - const data = state as TransferInformation; + // const data = state as TransferInformation; - const create = safeFunctionHandler( - lib.instance.informWireTransfer.bind(lib.instance), - !session.token || !!errors ? undefined : [session.token, data], - ); - create.onSuccess = onCreated; - create.onFail = (fail) => { - switch (fail.case) { - case HttpStatusCode.Unauthorized: - return i18n.str`Unauthorized.`; - case HttpStatusCode.NotFound: - return i18n.str`Not found.`; - case HttpStatusCode.Conflict: - return i18n.str`Conflict.`; - } - }; + // const create = safeFunctionHandler( + // lib.instance.informWireTransfer.bind(lib.instance), + // !session.token || !!errors ? undefined : [session.token, data], + // ); + // create.onSuccess = onCreated; + // create.onFail = (fail) => { + // switch (fail.case) { + // case HttpStatusCode.Unauthorized: + // return i18n.str`Unauthorized.`; + // case HttpStatusCode.NotFound: + // return i18n.str`Not found.`; + // case HttpStatusCode.Conflict: + // return i18n.str`Conflict.`; + // } + // }; const hasErrors = errors !== undefined; return ( @@ -147,17 +153,17 @@ export function CreatePage({ accounts, onCreated, onBack }: Props): VNode { <i18n.Translate>Cancel</i18n.Translate> </button> )} - <ButtonBetterBulma + {/* <ButtonBetterBulma data-tooltip={ hasErrors ? i18n.str`Please complete the marked fields` : i18n.str`Confirm operation` } type="submit" - onClick={create} + // onClick={create} > <i18n.Translate>Confirm</i18n.Translate> - </ButtonBetterBulma> + </ButtonBetterBulma> */} </div> </div> <div class="column" /> diff --git a/packages/merchant-backoffice-ui/src/paths/instance/transfers/create/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/transfers/create/index.tsx @@ -30,6 +30,11 @@ interface Props { onConfirm: () => void; } +/** + * @deprecated is going to be removed from the SPEC + * @param param0 + * @returns + */ export default function CreateTransfer({ onConfirm, onBack }: Props): VNode { const instance = useInstanceBankAccounts(); const accounts = diff --git a/packages/merchant-backoffice-ui/src/paths/instance/transfers/list/ListPage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/transfers/list/ListPage.tsx @@ -39,16 +39,16 @@ export interface Props { accounts: string[]; onChangePayTo: (p?: string) => void; payTo?: string; - onCreate: () => void; - onDelete: (wid: TalerMerchantApi.TransferDetails) => void; + // onCreate: () => void; + // onDelete: (wid: TalerMerchantApi.TransferDetails) => void; } export function ListPage({ payTo, onChangePayTo, transfers, - onCreate, - onDelete, + // onCreate, + // onDelete, accounts, onLoadMoreBefore, onLoadMoreAfter, @@ -127,8 +127,8 @@ export function ListPage({ id: String(o.transfer_serial_id), }))} accounts={accounts} - onCreate={onCreate} - onDelete={onDelete} + // onCreate={onCreate} + // onDelete={onDelete} onLoadMoreBefore={onLoadMoreBefore} onLoadMoreAfter={onLoadMoreAfter} /> diff --git a/packages/merchant-backoffice-ui/src/paths/instance/transfers/list/Table.tsx b/packages/merchant-backoffice-ui/src/paths/instance/transfers/list/Table.tsx @@ -34,8 +34,8 @@ type Entity = TalerMerchantApi.TransferDetails & WithId; interface Props { transfers: Entity[]; - onDelete: (id: Entity) => void; - onCreate: () => void; + // onDelete: (id: Entity) => void; + // onCreate: () => void; accounts: string[]; onLoadMoreBefore?: () => void; onLoadMoreAfter?: () => void; @@ -43,8 +43,8 @@ interface Props { export function CardTable({ transfers, - onCreate, - onDelete, + // onCreate, + // onDelete, onLoadMoreAfter, onLoadMoreBefore, }: Props): VNode { @@ -61,7 +61,7 @@ export function CardTable({ </span> <i18n.Translate>Wire transfers</i18n.Translate> </p> - <div class="card-header-icon" aria-label="more options"> + {/* <div class="card-header-icon" aria-label="more options"> <span class="has-tooltip-left" data-tooltip={i18n.str`Add new transfer`} @@ -77,7 +77,7 @@ export function CardTable({ </span> </button> </span> - </div> + </div> */} </header> <div class="card-content"> <div class="b-table has-pagination"> @@ -85,7 +85,7 @@ export function CardTable({ {transfers.length > 0 ? ( <Table instances={transfers} - onDelete={onDelete} + // onDelete={onDelete} rowSelection={rowSelection} rowSelectionHandler={rowSelectionHandler} onLoadMoreAfter={onLoadMoreAfter} @@ -103,7 +103,7 @@ export function CardTable({ interface TableProps { rowSelection: string[]; instances: Entity[]; - onDelete: (id: Entity) => void; + // onDelete: (id: Entity) => void; rowSelectionHandler: StateUpdater<string[]>; onLoadMoreBefore?: () => void; onLoadMoreAfter?: () => void; @@ -112,7 +112,7 @@ interface TableProps { function Table({ instances, onLoadMoreAfter, - onDelete, + // onDelete, onLoadMoreBefore, }: TableProps): VNode { const { i18n } = useTranslationContext(); @@ -147,7 +147,7 @@ function Table({ <th> <i18n.Translate>Executed on</i18n.Translate> </th> - <th /> + {/* <th /> */} </tr> </thead> <tbody> @@ -168,7 +168,7 @@ function Table({ ) : i18n.str`unknown`} </td> - <td> + {/* <td> {i.verified !== true ? ( <button type="button" @@ -179,7 +179,7 @@ function Table({ <i18n.Translate>Delete</i18n.Translate> </button> ) : undefined} - </td> + </td> */} </tr> ); })} diff --git a/packages/merchant-backoffice-ui/src/paths/instance/transfers/list/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/transfers/list/index.tsx @@ -24,6 +24,10 @@ import { TalerError, assertUnreachable, } from "@gnu-taler/taler-util"; +import { + LocalNotificationBannerBulma, + useLocalNotificationBetter +} from "@gnu-taler/web-util/browser"; import { Fragment, VNode, h } from "preact"; import { useEffect, useState } from "preact/hooks"; import { ErrorLoadingMerchant } from "../../../../components/ErrorLoadingMerchant.js"; @@ -31,30 +35,22 @@ import { Loading } from "../../../../components/exception/loading.js"; import { useInstanceBankAccounts } from "../../../../hooks/bank.js"; import { useInstanceTransfers } from "../../../../hooks/transfer.js"; import { LoginPage } from "../../../login/index.js"; -import { ListPage } from "./ListPage.js"; import { NotFoundPageOrAdminCreate } from "../../../notfound/index.js"; -import { useSessionContext } from "../../../../context/session.js"; -import { NotificationCard } from "../../../../components/menu/index.js"; -import { Notification } from "../../../../utils/types.js"; -import { - LocalNotificationBannerBulma, - useLocalNotificationBetter, - useTranslationContext, -} from "@gnu-taler/web-util/browser"; +import { ListPage } from "./ListPage.js"; interface Props { - onCreate: () => void; + // onCreate: () => void; } interface Form { verified?: boolean; payto_uri?: string; } -export default function ListTransfer({ onCreate }: Props): VNode { +export default function ListTransfer({ }: Props): VNode { const setFilter = (s?: boolean) => setForm({ ...form, verified: s }); - const { i18n } = useTranslationContext(); + // const { i18n } = useTranslationContext(); - const { state: session, lib } = useSessionContext(); + // const { state: session, lib } = useSessionContext(); const [position, setPosition] = useState<string | undefined>(undefined); @@ -86,9 +82,9 @@ export default function ListTransfer({ onCreate }: Props): VNode { ); // <LocalNotificationBannerBulma notification={notification} /> const [notification, safeFunctionHandler] = useLocalNotificationBetter(); - const remove = safeFunctionHandler( - lib.instance.deleteWireTransfer.bind(lib.instance), - ); + // const remove = safeFunctionHandler( + // lib.instance.deleteWireTransfer.bind(lib.instance), + // ); if (!result) return <Loading />; if (result instanceof TalerError) { return <ErrorLoadingMerchant error={result} />; @@ -116,16 +112,16 @@ export default function ListTransfer({ onCreate }: Props): VNode { transfers={result.body} onLoadMoreBefore={result.loadFirst} onLoadMoreAfter={result.loadNext} - onCreate={onCreate} - onDelete={async (transfer) => { - (!session.token - ? remove - : remove.withArgs( - session.token, - String(transfer.transfer_serial_id), - ) - ).call(); - }} + // onCreate={onCreate} + // onDelete={async (transfer) => { + // (!session.token + // ? remove + // : remove.withArgs( + // session.token, + // String(transfer.transfer_serial_id), + // ) + // ).call(); + // }} onShowAll={() => setFilter(undefined)} onShowUnverified={() => setFilter(false)} onShowVerified={() => setFilter(true)} diff --git a/packages/taler-util/src/http-client/merchant.ts b/packages/taler-util/src/http-client/merchant.ts @@ -1715,6 +1715,7 @@ export class TalerMerchantInstanceHttpClient { /** * https://docs.taler.net/core/api-merchant.html#post-[-instances-$INSTANCE]-private-transfers + * @deprecated */ async informWireTransfer( token: AccessToken | undefined, @@ -1796,6 +1797,7 @@ export class TalerMerchantInstanceHttpClient { /** * https://docs.taler.net/core/api-merchant.html#delete-[-instances-$INSTANCE]-private-transfers-$TID + * @deprecated */ async deleteWireTransfer(token: AccessToken | undefined, transferId: string) { const url = new URL(`private/transfers/${transferId}`, this.baseUrl);