mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 17:43:47 +00:00
- Карточки "Бонус новому пользователю" и "Бонус пригласившему"
скрыты когда значение = 0
- Динамический grid-cols в зависимости от количества видимых карточек
- Добавлено поле max_commission_payments в тип ReferralTerms
- Уведомления бота: строки с бонусом нового пользователя и бонусом
пригласившего скрываются если соответствующие настройки = 0
- Раздел "Как работают награды": карточки бонусов скрыты при значении 0
- Invite message: строка про бонус за первое пополнение скрыта при 0
- Текст комиссии: "с каждого пополнения" при без лимита,
"с пополнений" при наличии REFERRAL_MAX_COMMISSION_PAYMENTS- API /terms: добавлено поле max_commission_payments
- Добавлен ключ локали REFERRAL_REWARD_COMMISSION_LIMITED (ru/en/ua/zh/fa)
This commit is contained in:
@@ -302,37 +302,56 @@ export default function Referral() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Program Terms */}
|
{/* Program Terms */}
|
||||||
{terms && (
|
{terms &&
|
||||||
<div className="bento-card">
|
(() => {
|
||||||
<h2 className="mb-4 text-lg font-semibold text-dark-100">{t('referral.terms.title')}</h2>
|
const showNewUserBonus = terms.first_topup_bonus_kopeks > 0;
|
||||||
<div className="grid grid-cols-2 gap-4 md:grid-cols-4">
|
const showInviterBonus = terms.inviter_bonus_kopeks > 0;
|
||||||
<div className="rounded-xl bg-dark-800/30 p-3">
|
const cardCount = 2 + (showNewUserBonus ? 1 : 0) + (showInviterBonus ? 1 : 0);
|
||||||
<div className="text-sm text-dark-500">{t('referral.terms.commission')}</div>
|
const gridCols =
|
||||||
<div className="mt-1 text-lg font-semibold text-dark-100">
|
cardCount <= 2
|
||||||
{terms.commission_percent}%
|
? 'md:grid-cols-2'
|
||||||
|
: cardCount === 3
|
||||||
|
? 'md:grid-cols-3'
|
||||||
|
: 'md:grid-cols-4';
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="bento-card">
|
||||||
|
<h2 className="mb-4 text-lg font-semibold text-dark-100">
|
||||||
|
{t('referral.terms.title')}
|
||||||
|
</h2>
|
||||||
|
<div className={`grid grid-cols-2 gap-4 ${gridCols}`}>
|
||||||
|
<div className="rounded-xl bg-dark-800/30 p-3">
|
||||||
|
<div className="text-sm text-dark-500">{t('referral.terms.commission')}</div>
|
||||||
|
<div className="mt-1 text-lg font-semibold text-dark-100">
|
||||||
|
{terms.commission_percent}%
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="rounded-xl bg-dark-800/30 p-3">
|
||||||
|
<div className="text-sm text-dark-500">{t('referral.terms.minTopup')}</div>
|
||||||
|
<div className="mt-1 text-lg font-semibold text-dark-100">
|
||||||
|
{formatAmount(terms.minimum_topup_rubles)} {currencySymbol}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{showNewUserBonus && (
|
||||||
|
<div className="rounded-xl bg-dark-800/30 p-3">
|
||||||
|
<div className="text-sm text-dark-500">{t('referral.terms.newUserBonus')}</div>
|
||||||
|
<div className="mt-1 text-lg font-semibold text-success-400">
|
||||||
|
{formatPositive(terms.first_topup_bonus_rubles)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
{showInviterBonus && (
|
||||||
|
<div className="rounded-xl bg-dark-800/30 p-3">
|
||||||
|
<div className="text-sm text-dark-500">{t('referral.terms.inviterBonus')}</div>
|
||||||
|
<div className="mt-1 text-lg font-semibold text-success-400">
|
||||||
|
{formatPositive(terms.inviter_bonus_rubles)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="rounded-xl bg-dark-800/30 p-3">
|
);
|
||||||
<div className="text-sm text-dark-500">{t('referral.terms.minTopup')}</div>
|
})()}
|
||||||
<div className="mt-1 text-lg font-semibold text-dark-100">
|
|
||||||
{formatAmount(terms.minimum_topup_rubles)} {currencySymbol}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="rounded-xl bg-dark-800/30 p-3">
|
|
||||||
<div className="text-sm text-dark-500">{t('referral.terms.newUserBonus')}</div>
|
|
||||||
<div className="mt-1 text-lg font-semibold text-success-400">
|
|
||||||
{formatPositive(terms.first_topup_bonus_rubles)}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="rounded-xl bg-dark-800/30 p-3">
|
|
||||||
<div className="text-sm text-dark-500">{t('referral.terms.inviterBonus')}</div>
|
|
||||||
<div className="mt-1 text-lg font-semibold text-success-400">
|
|
||||||
{formatPositive(terms.inviter_bonus_rubles)}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{/* Referrals List */}
|
{/* Referrals List */}
|
||||||
<div className="bento-card">
|
<div className="bento-card">
|
||||||
|
|||||||
@@ -437,6 +437,7 @@ export interface ReferralTerms {
|
|||||||
first_topup_bonus_rubles: number;
|
first_topup_bonus_rubles: number;
|
||||||
inviter_bonus_kopeks: number;
|
inviter_bonus_kopeks: number;
|
||||||
inviter_bonus_rubles: number;
|
inviter_bonus_rubles: number;
|
||||||
|
max_commission_payments: number;
|
||||||
partner_section_visible?: boolean;
|
partner_section_visible?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user