// License: LGPL-3.0-or-later var flyd = require("flyd") var h = require("virtual-dom/h") var footer = require('./footer') var radioAndLabelWrapper = require('../../components/radio-and-label-wrapper') var namePrefix = 'settings.amounts.' var nameStream = flyd.stream() module.exports = {root: root, stream: nameStream} function root(state) { return [ h('header.step-header', [h('h4.step-title', 'Amounts')]), body(state) ] } function body(state){ return h('div.step-inner', [ menu(), singleInput(state), multipleInputs(state), footer.root('Next', 'type') ]) } function menu() { return h('section',[ radioAndLabelWrapper('radio-multiple-amounts', namePrefix + 'name', {'checked': 'checked', 'value': 'multiple'}, ["I want donors to be able to select from ", h('strong', 'multiple'), " amounts."], nameStream), radioAndLabelWrapper('radio-single-amount', namePrefix + 'name', {'value': 'single'}, ["I want a ", h('strong', 'single, preset'), " amount."], nameStream), ]) } function input(value, key) { return h('span.prepend--dollar', h('input.input--200', {name: namePrefix + key, value: value, onchange: nameStream}) ) } function displayIf(state, matcher) { return state.settings.amounts.name === matcher ? 'block' : 'none' } function singleInput(state) { return h('div.u-marginTop--15', {style: {display: displayIf(state, 'single')}}, input(state.settings.amounts.single, 'single')) } function multipleInputs(state) { var multiples = state.settings.amounts.multiples var inputs = [] for (var key in multiples) { inputs.push(input(multiples[key], 'multiples.' + key)) } return h('section.layout--three.u-marginTop--15', {style: {display: displayIf(state, 'multiple')}}, inputs) }