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