// License: LGPL-3.0-or-later const h = require('snabbdom/h') const flyd = require('flyd') const R = require('ramda') const soldOut = require('./is-sold-out') const giftButton = require('./gift-option-button') const giftOption = g => h('option', { props: {value: g.id} }, g.name) const setDisplayGift = (state, gifts) => ev => { var id = Number(ev.target.value) state.selectedModalGift$(R.find(R.propEq('id', id))(gifts)) } const chooseGift = (state, gifts) => h('div.pastelBox--grey.u-padding--10', [ h('select.u-margin--0', {on: {change: setDisplayGift(state, gifts)}} , R.concat([h('option', 'Choose a gift option')], R.map(giftOption, gifts))) , h('div.sideGifts', state.selectedModalGift$() && state.selectedModalGift$().id ? [ h('p.u-marginTop--10', state.selectedModalGift$().description || '') , giftButton(state.giftOptions, state.selectedModalGift$()) ] : '' ) ]) const regularContribution = state => { if (app.campaign.hide_custom_amounts) return '' return h('div.u-marginTop--15.centered', [ h('a', {on: {click: state.clickRegularContribution$}}, 'Contribute with no gift option') ]) } module.exports = state => { var gifts = R.filter(g => !soldOut(g), state.giftOptions.giftOptions$() || []) return h('div.u-padding--15', [ chooseGift(state, gifts) , regularContribution(state) ]) }