(function(){
function esc(s){ return String(s||'').replace(/[&<>"']/g, m=>({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[m])); }
function getVariantSummaryText(){
const vs = document.getElementById('pd-variant-summary');
if (!vs) return '';
const items = Array.from(vs.querySelectorAll('.vs-item strong')).map(el => el.textContent.trim()).filter(Boolean);
return items.length ? items.join(' / ') : '';
}
window.addToCartSubmit = async function(e, productId){
e.preventDefault();
try {
const form = e.target;
const qty = parseInt(form.querySelector('[name=qty]')?.value || '1', 10) || 1;
const variantId = parseInt(document.getElementById('pd-variant-id')?.value || '0', 10) || 0;
await (window.addToCart ? window.addToCart(productId, qty, variantId) : Promise.reject(new Error('addToCart tidak tersedia')));
const name = (window.PD_NAME !== undefined) ? String(window.PD_NAME) : (document.getElementById('pd-title')?.textContent || '');
const sku = (function(){ const el=document.getElementById('pd-sku'); return el?el.textContent.trim(): (window.PD_SKU||''); })();
const variantText = getVariantSummaryText();
if (window.showToast) {
window.showToast({
type: 'success',
title: 'Berhasil ditambahkan ke Keranjang',
message: `${esc(name)}${variantText?` · ${esc(variantText)}`:''}
SKU: ${esc(sku)} · Qty: ${qty}`,
duration: 5000,
actions: [
{ label: 'Lihat Keranjang', onClick: ()=> { window.location.href = '/keranjang'; } },
{ label: 'Lanjut Belanja', variant: 'alt', onClick: ()=>{} }
]
});
}
} catch (err) {
if (window.showToast) {
window.showToast({ type:'warn', title:'Gagal menambahkan', message: String(err?.message||'Terjadi kesalahan'), duration: 4500 });
} else {
console.error(err);
}
}
return false;
};
})();