diff options
author | Sebastian <sebasjm@gmail.com> | 2023-09-22 18:34:49 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-09-25 14:50:44 -0300 |
commit | 15af6c619de70336bcdfbabbd32b9d93aabefc5b (patch) | |
tree | 5dff83b07f9ffcb26cd4eb595f9e80f549ae25b5 /packages/demobank-ui/src/pages/business | |
parent | 5640f0a67dcc31fa2b5fa0992abca8a55bc00dd8 (diff) | |
download | wallet-core-15af6c619de70336bcdfbabbd32b9d93aabefc5b.tar.xz |
towards new core bank api
Diffstat (limited to 'packages/demobank-ui/src/pages/business')
-rw-r--r-- | packages/demobank-ui/src/pages/business/Home.tsx | 93 |
1 files changed, 48 insertions, 45 deletions
diff --git a/packages/demobank-ui/src/pages/business/Home.tsx b/packages/demobank-ui/src/pages/business/Home.tsx index f5f77a3ea..427cfc656 100644 --- a/packages/demobank-ui/src/pages/business/Home.tsx +++ b/packages/demobank-ui/src/pages/business/Home.tsx @@ -201,13 +201,13 @@ function useRatiosAndFeeConfigWithChangeDetection(): HttpResponse< (result.data.name !== oldResult.name || result.data.version !== oldResult.version || result.data.ratios_and_fees.buy_at_ratio !== - oldResult.ratios_and_fees.buy_at_ratio || + oldResult.ratios_and_fees.buy_at_ratio || result.data.ratios_and_fees.buy_in_fee !== - oldResult.ratios_and_fees.buy_in_fee || + oldResult.ratios_and_fees.buy_in_fee || result.data.ratios_and_fees.sell_at_ratio !== - oldResult.ratios_and_fees.sell_at_ratio || + oldResult.ratios_and_fees.sell_at_ratio || result.data.ratios_and_fees.sell_out_fee !== - oldResult.ratios_and_fees.sell_out_fee || + oldResult.ratios_and_fees.sell_out_fee || result.data.fiat_currency !== oldResult.fiat_currency); return { @@ -236,10 +236,14 @@ function CreateCashout({ if (!ratiosResult.ok) return onLoadNotOk(ratiosResult); const config = ratiosResult.data; - const balance = Amounts.parseOrThrow(result.data.balance.amount); - const debitThreshold = Amounts.parseOrThrow(result.data.debitThreshold); + //FIXME: libeufin does not follow the spec + const balance = Amounts.parseOrThrow(result.data.balance); + const balanceIsDebit = true; + // const balance = Amounts.parseOrThrow(result.data.balance.amount); + // const balanceIsDebit = result.data.balance.credit_debit_indicator == "debit"; + + const debitThreshold = Amounts.parseOrThrow(result.data.debit_threshold); const zero = Amounts.zeroOfCurrency(balance.currency); - const balanceIsDebit = result.data.balance.credit_debit_indicator == "debit"; const limit = balanceIsDebit ? Amounts.sub(debitThreshold, balance).amount : Amounts.add(balance, debitThreshold).amount; @@ -250,15 +254,14 @@ function CreateCashout({ const sellFee = !config.ratios_and_fees.sell_out_fee ? zero : Amounts.parseOrThrow( - `${balance.currency}:${config.ratios_and_fees.sell_out_fee}`, - ); + `${balance.currency}:${config.ratios_and_fees.sell_out_fee}`, + ); const fiatCurrency = config.fiat_currency; if (!sellRate || sellRate < 0) return <div>error rate</div>; const amount = Amounts.parseOrThrow( - `${!form.isDebit ? fiatCurrency : balance.currency}:${ - !form.amount ? "0" : form.amount + `${!form.isDebit ? fiatCurrency : balance.currency}:${!form.amount ? "0" : form.amount }`, ); @@ -273,10 +276,10 @@ function CreateCashout({ error instanceof RequestError ? buildRequestErrorMessage(i18n, error.cause) : { - type: "error", - title: i18n.str`Could not estimate the cashout`, - description: error.message as TranslatedString - }, + type: "error", + title: i18n.str`Could not estimate the cashout`, + description: error.message as TranslatedString + }, ); }); } else { @@ -289,10 +292,10 @@ function CreateCashout({ error instanceof RequestError ? buildRequestErrorMessage(i18n, error.cause) : { - type: "error", - title: i18n.str`Could not estimate the cashout`, - description: error.message, - }, + type: "error", + title: i18n.str`Could not estimate the cashout`, + description: error.message, + }, ); }); } @@ -307,14 +310,14 @@ function CreateCashout({ amount: !form.amount ? i18n.str`required` : !amount - ? i18n.str`could not be parsed` - : Amounts.cmp(limit, calc.debit) === -1 - ? i18n.str`balance is not enough` - : Amounts.cmp(calc.beforeFee, sellFee) === -1 - ? i18n.str`the total amount to transfer does not cover the fees` - : Amounts.isZero(calc.credit) - ? i18n.str`the total transfer at destination will be zero` - : undefined, + ? i18n.str`could not be parsed` + : Amounts.cmp(limit, calc.debit) === -1 + ? i18n.str`balance is not enough` + : Amounts.cmp(calc.beforeFee, sellFee) === -1 + ? i18n.str`the total amount to transfer does not cover the fees` + : Amounts.isZero(calc.credit) + ? i18n.str`the total transfer at destination will be zero` + : undefined, channel: !form.channel ? i18n.str`required` : undefined, }); @@ -341,7 +344,7 @@ function CreateCashout({ {form.isDebit ? i18n.str`Amount to send` : i18n.str`Amount to receive`} - + </label> <div style={{ display: "flex" }}> <Amount @@ -520,12 +523,12 @@ function CreateCashout({ status === HttpStatusCode.BadRequest ? i18n.str`The exchange rate was incorrectly applied` : status === HttpStatusCode.Forbidden - ? i18n.str`A institutional user tried the operation` - : status === HttpStatusCode.Conflict - ? i18n.str`Need a contact data where to send the TAN` - : status === HttpStatusCode.PreconditionFailed - ? i18n.str`The account does not have sufficient funds` - : undefined, + ? i18n.str`A institutional user tried the operation` + : status === HttpStatusCode.Conflict + ? i18n.str`Need a contact data where to send the TAN` + : status === HttpStatusCode.PreconditionFailed + ? i18n.str`The account does not have sufficient funds` + : undefined, onServerError: (status) => status === HttpStatusCode.ServiceUnavailable ? i18n.str`The bank does not support the TAN channel for this operation` @@ -539,7 +542,7 @@ function CreateCashout({ ? error.message : JSON.stringify(error)) as TranslatedString ) - } + } } }} > @@ -665,8 +668,8 @@ export function ShowCashoutDetails({ status === HttpStatusCode.NotFound ? i18n.str`Cashout not found. It may be also mean that it was already aborted.` : status === HttpStatusCode.PreconditionFailed - ? i18n.str`Cashout was already confimed` - : undefined, + ? i18n.str`Cashout was already confimed` + : undefined, }), ); } else { @@ -676,7 +679,7 @@ export function ShowCashoutDetails({ ? error.message : JSON.stringify(error)) as TranslatedString ) - } + } } }} > @@ -702,12 +705,12 @@ export function ShowCashoutDetails({ status === HttpStatusCode.NotFound ? i18n.str`Cashout not found. It may be also mean that it was already aborted.` : status === HttpStatusCode.PreconditionFailed - ? i18n.str`Cashout was already confimed` - : status === HttpStatusCode.Conflict - ? i18n.str`Confirmation failed. Maybe the user changed their cash-out address between the creation and the confirmation` - : status === HttpStatusCode.Forbidden - ? i18n.str`Invalid code` - : undefined, + ? i18n.str`Cashout was already confimed` + : status === HttpStatusCode.Conflict + ? i18n.str`Confirmation failed. Maybe the user changed their cash-out address between the creation and the confirmation` + : status === HttpStatusCode.Forbidden + ? i18n.str`Invalid code` + : undefined, }), ); } else { @@ -717,7 +720,7 @@ export function ShowCashoutDetails({ ? error.message : JSON.stringify(error)) as TranslatedString ) - } + } } }} > |