{
if (e.target.closest('.addon-modal-confirm-button')) {
const modalRoot = e.currentTarget;
const modalProductForm = modalRoot.querySelector('product-form');
if (modalProductForm && typeof modalProductForm.onSubmitHandler === 'function') {
modalProductForm.dataset.validateOnly = 'true';
modalProductForm.onSubmitHandler(new Event('submit', { cancelable: true }));
if (!modalProductForm._lastValidationPassed) {
return;
}
}
const index = $store.alpineModal.index;
const sectionId = $store.alpineModal.sectionId;
const scope = sectionId ? document.querySelector('[data-section=\'' + sectionId + '\']') : document;
const mainQtyInput = scope.querySelector('input[name=\'properties[_pdp_addon_' + index + ']\']');
if (mainQtyInput) {
// Sync variant selection if any
const modalVariantInput = e.currentTarget.querySelector('input[name=id]');
if (modalVariantInput) {
mainQtyInput.dataset.variant = modalVariantInput.value;
}
// Trigger the plus button on the main page to handle all logic (price, hidden inputs, etc.)
const plusBtn = mainQtyInput.closest('.quantity-wrapper')?.querySelector('.btn-number[data-type=\'plus\']');
if (plusBtn) {
plusBtn.dispatchEvent(new Event('click', { bubbles: true }));
}
}
$store.alpineModal.close();
}
}"
>