+ {partnerStatus.campaigns.map((campaign) => {
+ const shareUrl = campaign.deep_link || campaign.web_link || '';
+ const isCopied = copiedCampaignId === campaign.id;
+
+ const copyCampaignLink = () => {
+ if (!shareUrl) return;
+ navigator.clipboard.writeText(shareUrl);
+ setCopiedCampaignId(campaign.id);
+ setTimeout(() => setCopiedCampaignId(null), 2000);
+ };
+
+ const bonusBadge = (() => {
+ switch (campaign.bonus_type) {
+ case 'balance':
+ return {
+ label: t('referral.partner.campaignBonus.balance', {
+ amount: formatWithCurrency(campaign.balance_bonus_kopeks / 100, 0),
+ }),
+ className: 'badge-success',
+ };
+ case 'subscription':
+ return {
+ label: t('referral.partner.campaignBonus.subscription', {
+ days: campaign.subscription_duration_days ?? 0,
+ }),
+ className: 'badge-info',
+ };
+ case 'tariff':
+ return {
+ label: t('referral.partner.campaignBonus.tariff'),
+ className: 'badge-info',
+ };
+ default:
+ return null;
+ }
+ })();
+
+ return (
+
+
+ {campaign.name}
+ {bonusBadge && {bonusBadge.label}}
+
+
+
+
+
+
+ );
+ })}
+