const preact = require('preact'); const range = require('lodash/range'); const shapes = require('./shapes'); function storeElement(props) { const { clearVboxSelected, setVboxSelected, storeSelect, stashSelect, vbox, vboxHighlight, vboxHover, } = props; function availableBtn(v, group, index) { if (!v) return ; const selected = storeSelect.length && storeSelect.some(vs => vs[0] === group && vs[1] === index); const notValidCombo = vboxHighlight && !vboxHighlight.includes(v); function onClick(e) { e.stopPropagation(); if (storeSelect.length && storeSelect.some(vs => vs[0] === group && vs[1] === index)) { return setVboxSelected( { storeSelect: storeSelect.filter(vs => !(vs[0] === group && vs[1] === index)), stashSelect } ); } if (!storeSelect.length && !stashSelect.length) { return setVboxSelected({ storeSelect: [[group, index]], stashSelect }); } if (notValidCombo) { return setVboxSelected({ storeSelect: [[group, index]], stashSelect: [] }); } return setVboxSelected({ storeSelect: [...storeSelect, [group, index]], stashSelect }); } const classes = selected ? `${v.toLowerCase()} highlight` : `${v.toLowerCase()} ${notValidCombo ? 'fade' : ''}`; const vboxObject = shapes[v] ? shapes[v]() : v; const disabled = vbox.bits <= group; return ( ); } return (