feat(pet): подтверждение покупки фона в гардеробной
Перед платной покупкой фона — диалог LS.confirm («Купить «X» за N монет?») + предпроверка баланса (тост, если монет не хватает). Применение уже купленных/стандартного — без подтверждения. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1107,6 +1107,14 @@ async function renderBgPicker() {
|
||||
c.addEventListener('click', () => selectBgInline(c.dataset.id, +c.dataset.price, c.dataset.owned === '1')));
|
||||
}
|
||||
async function selectBgInline(id, price, owned) {
|
||||
// покупка платного фона — подтверждение + предпроверка баланса
|
||||
if (!owned && id !== 'default') {
|
||||
const coins = _petData ? (_petData.coins ?? 0) : 0;
|
||||
if (coins < price) { LS.toast?.('Недостаточно монет: нужно ' + price, 'warn'); return; }
|
||||
const ok = await LS.confirm('Купить фон «' + (BG_NAMES[id] || id) + '» за ' + price + ' монет?',
|
||||
{ title: 'Покупка фона', confirmText: 'Купить за ' + price, danger: false });
|
||||
if (!ok) return;
|
||||
}
|
||||
const endpoint = owned ? '/api/pet/bg' : '/api/pet/shop/buy';
|
||||
const res = await LS.api(endpoint, { method: owned ? 'PATCH' : 'POST', body: JSON.stringify({ id }) }).catch(e => {
|
||||
if (e?.data?.error === 'insufficient_coins') LS.toast?.('Недостаточно монет', 'error');
|
||||
|
||||
Reference in New Issue
Block a user