14.05.2026 rip
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { useConverter, progressPercent, findTier } from '@widgets/currency-converter'
|
||||
import { useDebounce } from '@shared/lib/hooks/useDebounce'
|
||||
import { usePaymentQuote, useCreateOrder } from '@features/payment'
|
||||
import { usePaymentQuote, usePaymentConfig, useCreateOrder } from '@features/payment'
|
||||
import { CommissionPanel } from './CommissionPanel'
|
||||
import { AgreementCheck } from './AgreementCheck'
|
||||
import styles from './ConverterSection.module.css'
|
||||
@@ -10,9 +10,12 @@ export function ConverterSection() {
|
||||
|
||||
const debouncedUsdt = useDebounce(c.numRub, 400)
|
||||
const { data: quote, isError: quoteError } = usePaymentQuote(debouncedUsdt)
|
||||
const { data: config } = usePaymentConfig()
|
||||
|
||||
const configUsdtRate = Number(config?.usdt_exchange_rate) || 0
|
||||
const gasPriceRub = Number(config?.gas_fee) * configUsdtRate
|
||||
|
||||
const usdtRate = Number(quote?.usdt_exchange_rate) || 0
|
||||
const gasPrice = Number(quote?.gas_fee) || 0
|
||||
|
||||
const rubTotal = quote?.total_price ?? ''
|
||||
const rubTotalNum = Number(rubTotal) || 0
|
||||
@@ -41,10 +44,10 @@ export function ConverterSection() {
|
||||
</div>
|
||||
<div className={styles.pills}>
|
||||
<div className={styles.pill}>
|
||||
Цена газа в RUB <span className={styles.pillValue}>{gasPrice.toFixed(2)} RUB</span>
|
||||
Цена газа в RUB <span className={styles.pillValue}>{gasPriceRub.toFixed(2)} RUB</span>
|
||||
</div>
|
||||
<div className={styles.pill}>
|
||||
USDT/RUB <span className={styles.pillValue}>{usdtRate.toFixed(2)} ₽</span>
|
||||
USDT/RUB <span className={styles.pillValue}>{configUsdtRate.toFixed(2)} ₽</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,19 +1,25 @@
|
||||
import { GAS_PRICE, USDT_RATE } from '@shared/config/constants'
|
||||
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 { AgreementCheckbox } from './AgreementCheckbox'
|
||||
import { CommissionTable } from './CommissionTable'
|
||||
import styles from './Converter.module.css'
|
||||
import { Title } from '@shared/ui/Title/Title'
|
||||
|
||||
export function Converter() {
|
||||
const c = useConverter({ usdtRate: USDT_RATE })
|
||||
const { data: config } = usePaymentConfig()
|
||||
|
||||
const configUsdtRate = Number(config?.usdt_exchange_rate) || USDT_RATE
|
||||
const gasPriceRub = Number(config?.gas_fee) * configUsdtRate || GAS_PRICE
|
||||
|
||||
const c = useConverter({ usdtRate: configUsdtRate })
|
||||
|
||||
// c.rubVal / c.numRub used as USDT input; RUB is computed
|
||||
const numUsdt = c.numRub
|
||||
const approxRub = numUsdt * USDT_RATE
|
||||
const approxRub = numUsdt * configUsdtRate
|
||||
const { pct } = findTier(approxRub)
|
||||
const effectiveRate = USDT_RATE * (1 + pct / 100)
|
||||
const effectiveRate = configUsdtRate * (1 + pct / 100)
|
||||
const rubOutput = numUsdt > 0 ? (numUsdt * effectiveRate).toFixed(2) : ''
|
||||
const commission = (approxRub * pct) / 100
|
||||
|
||||
@@ -27,10 +33,10 @@ export function Converter() {
|
||||
</div>
|
||||
<div className={styles.pills}>
|
||||
<div className={styles.pill}>
|
||||
Цена газа в RUB <span className={styles.pillValue}>{GAS_PRICE.toFixed(2)} RUB</span>
|
||||
Цена газа в RUB <span className={styles.pillValue}>{gasPriceRub.toFixed(2)} RUB</span>
|
||||
</div>
|
||||
<div className={styles.pill}>
|
||||
USDT/RUB <span className={styles.pillValue}>{USDT_RATE.toFixed(2)} ₽</span>
|
||||
USDT/RUB <span className={styles.pillValue}>{configUsdtRate.toFixed(2)} ₽</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user