14.05.2026 rip

This commit is contained in:
2026-05-14 17:54:58 +03:00
parent b4502027fa
commit 226371e0f6
2 changed files with 17 additions and 18 deletions

View File

@@ -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()

View File

@@ -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}
/>