import { createProductCard } from '@commerce-blocks/sdk'
const controller = createProductCard({ product })
const card = document.querySelector('[data-product-card]')
function render(state) {
const optionButtons = state.options
.flatMap((group) =>
group.values.map((option) => `
<button
type="button"
data-option-name="${group.name}"
data-option-value="${option.value}"
${option.status === 'unavailable' ? 'disabled' : ''}
aria-pressed="${option.selected}"
>
${option.value}
</button>
`),
)
.join('')
card.innerHTML = `
<div class="product-card__options">${optionButtons}</div>
<span class="product-card__price">${state.price.price?.formatted ?? ''}</span>
`
card.querySelectorAll('[data-option-name]').forEach((button) => {
button.addEventListener('click', () => {
controller.selectOption({
name: button.dataset.optionName,
value: button.dataset.optionValue,
})
})
})
}
const unsubscribe = controller.subscribe(render)
function teardown() {
unsubscribe()
controller.dispose()
}