const checkout = await Purse.createHeadlessCheckout(clientSession.widget.data);
const methodsList = document.getElementById('methods');
const form = document.getElementById('form');
const payButton = document.getElementById('pay-button');
checkout.paymentMethods.subscribe((methods) => {
renderMethodList(methods);
});
function renderMethodList(methods) {
methodsList.innerHTML = '';
methods.forEach((method) => {
const item = document.createElement('button');
item.type = 'button';
item.textContent = `${method.partner} - ${method.method}`;
item.addEventListener('click', () => selectMethod(method));
methodsList.appendChild(item);
});
}
function selectMethod(method) {
form.innerHTML = '';
const element = method.getPaymentElement();
element.appendTo(form);
}
checkout.isPaymentFulfilled.subscribe((isFulfilled) => {
payButton.disabled = !isFulfilled;
});
payButton.addEventListener('click', async () => {
await checkout.submitPayment();
});