14.05.2026 rip
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { useConverter, progressPercent, findTier } from '@widgets/currency-converter'
|
||||
import { useConverter, progressPercent } from '@widgets/currency-converter'
|
||||
import { useDebounce } from '@shared/lib/hooks/useDebounce'
|
||||
import { usePaymentQuote, usePaymentConfig, useCreateOrder } from '@features/payment'
|
||||
import { CommissionPanel } from './CommissionPanel'
|
||||
@@ -15,14 +15,11 @@ export function ConverterSection() {
|
||||
const configUsdtRate = Number(config?.usdt_exchange_rate) || 0
|
||||
const gasPriceRub = Number(config?.gas_fee) * configUsdtRate
|
||||
|
||||
const usdtRate = Number(quote?.usdt_exchange_rate) || 0
|
||||
|
||||
const rubTotal = quote?.total_price ?? ''
|
||||
const rubTotalNum = Number(rubTotal) || 0
|
||||
|
||||
const tier = findTier(rubTotalNum)
|
||||
const commission = (rubTotalNum * tier.pct) / 100
|
||||
const effectiveRate = usdtRate * (1 + tier.pct / 100)
|
||||
const commission = Number(quote?.service_fee) || 0
|
||||
const effectiveRate = c.numRub > 0 ? rubTotalNum / c.numRub : 0
|
||||
|
||||
const { mutate: submitOrder, isPending } = useCreateOrder()
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { USDT_RATE, GAS_PRICE } from '@shared/config/constants'
|
||||
import { useConverter } from '../model/useConverter'
|
||||
import { findTier, progressPercent } from '../model/tiers'
|
||||
import { usePaymentConfig } from '@features/payment'
|
||||
import { progressPercent } from '../model/tiers'
|
||||
import { usePaymentConfig, usePaymentQuote } from '@features/payment'
|
||||
import { useDebounce } from '@shared/lib/hooks/useDebounce'
|
||||
import { AgreementCheckbox } from './AgreementCheckbox'
|
||||
import { CommissionTable } from './CommissionTable'
|
||||
import styles from './Converter.module.css'
|
||||
@@ -15,13 +16,14 @@ export function Converter() {
|
||||
|
||||
const c = useConverter({ usdtRate: configUsdtRate })
|
||||
|
||||
// c.rubVal / c.numRub used as USDT input; RUB is computed
|
||||
const numUsdt = c.numRub
|
||||
const approxRub = numUsdt * configUsdtRate
|
||||
const { pct } = findTier(approxRub)
|
||||
const effectiveRate = configUsdtRate * (1 + pct / 100)
|
||||
const rubOutput = numUsdt > 0 ? (numUsdt * effectiveRate).toFixed(2) : ''
|
||||
const commission = (approxRub * pct) / 100
|
||||
const debouncedUsdt = useDebounce(c.numRub, 400)
|
||||
const { data: quote } = usePaymentQuote(debouncedUsdt)
|
||||
|
||||
const rubTotal = quote?.total_price ?? ''
|
||||
const rubTotalNum = Number(rubTotal) || 0
|
||||
|
||||
const commission = Number(quote?.service_fee) || 0
|
||||
const effectiveRate = c.numRub > 0 ? rubTotalNum / c.numRub : 0
|
||||
|
||||
return (
|
||||
<section className={styles.section} id="converter">
|
||||
@@ -98,7 +100,7 @@ export function Converter() {
|
||||
|
||||
<div className={styles.field}>
|
||||
<div className={styles.fieldInput}>
|
||||
<input type="text" value={rubOutput} readOnly placeholder="0" />
|
||||
<input type="text" value={rubTotal} readOnly placeholder="0" />
|
||||
<div className={styles.currency}>
|
||||
<span className={`${styles.currencyIcon} ${styles.currencyRub}`}>₽</span> RUB
|
||||
</div>
|
||||
@@ -107,8 +109,8 @@ export function Converter() {
|
||||
</div>
|
||||
|
||||
<CommissionTable
|
||||
amount={approxRub}
|
||||
progress={progressPercent(approxRub)}
|
||||
amount={rubTotalNum}
|
||||
progress={progressPercent(rubTotalNum)}
|
||||
commission={commission}
|
||||
effectiveRate={effectiveRate}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user