mirror of
https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot.git
synced 2026-03-01 07:42:30 +00:00
Merge pull request #1221 from Fr1ngg/ql23rs-bedolaga/fix-subscription-block-height-for-mobile
Adjust mini app subscription card height for promo discounts
This commit is contained in:
@@ -1171,6 +1171,10 @@
|
||||
padding: 0 16px 0;
|
||||
}
|
||||
|
||||
.subscription-purchase-card.has-promo-details .card-content {
|
||||
max-height: none;
|
||||
}
|
||||
|
||||
.subscription-purchase-actions {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -1303,6 +1307,14 @@
|
||||
padding: 0 16px 0;
|
||||
}
|
||||
|
||||
.subscription-purchase-card.has-promo-details {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.subscription-purchase-card.has-promo-details .card-content {
|
||||
max-height: none;
|
||||
}
|
||||
|
||||
.subscription-purchase-option-content {
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
@@ -16345,6 +16357,70 @@
|
||||
|| (preview?.missingAmountKopeks || 0) > 0;
|
||||
submitButton.disabled = disabled;
|
||||
}
|
||||
|
||||
const cardElement = document.getElementById('subscriptionPurchaseCard');
|
||||
if (cardElement) {
|
||||
let hasPromoDetails = false;
|
||||
if (!loading && preview) {
|
||||
const discountLines = ensureArray(preview.discountLines)
|
||||
.map(line => {
|
||||
if (typeof line === 'string') {
|
||||
return line.trim();
|
||||
}
|
||||
if (line && typeof line.label === 'string') {
|
||||
return line.label.trim();
|
||||
}
|
||||
return '';
|
||||
})
|
||||
.filter(Boolean);
|
||||
|
||||
const rawPreview = preview.raw;
|
||||
const promoRoots = [];
|
||||
if (rawPreview && typeof rawPreview === 'object') {
|
||||
promoRoots.push(rawPreview);
|
||||
['preview', 'data', 'summary', 'config', 'meta'].forEach(key => {
|
||||
const candidate = rawPreview[key];
|
||||
if (candidate && typeof candidate === 'object') {
|
||||
promoRoots.push(candidate);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const hasPromoFromRaw = promoRoots.some(entry => {
|
||||
if (!entry || typeof entry !== 'object') {
|
||||
return false;
|
||||
}
|
||||
|
||||
const groupActive = entry.promo_group
|
||||
|| entry.promoGroup
|
||||
|| entry.promo_group_active
|
||||
|| entry.promoGroupActive;
|
||||
const offerActive = entry.promo_offer || entry.promoOffer;
|
||||
const rawDiscounts = ensureArray(
|
||||
entry.discount_lines
|
||||
|| entry.discountLines
|
||||
|| entry.promo
|
||||
|| entry.discounts,
|
||||
)
|
||||
.map(item => {
|
||||
if (typeof item === 'string') {
|
||||
return item.trim();
|
||||
}
|
||||
if (item && typeof item.label === 'string') {
|
||||
return item.label.trim();
|
||||
}
|
||||
return '';
|
||||
})
|
||||
.filter(Boolean);
|
||||
|
||||
return Boolean(groupActive || offerActive || rawDiscounts.length);
|
||||
});
|
||||
|
||||
hasPromoDetails = discountLines.length > 0 || hasPromoFromRaw;
|
||||
}
|
||||
|
||||
cardElement.classList.toggle('has-promo-details', hasPromoDetails);
|
||||
}
|
||||
}
|
||||
|
||||
function requestSubscriptionPurchasePreviewUpdate(options = {}) {
|
||||
|
||||
Reference in New Issue
Block a user