mnml/html-client/src/components/vbox.container.jsx
2019-03-28 17:25:00 +11:00

54 lines
1.3 KiB
JavaScript

const { connect } = require('preact-redux');
const actions = require('../actions');
const Vbox = require('./vbox.component');
const addState = connect(
function receiveState(state) {
const { ws, instance, combiner } = state;
function sendVboxDiscard() {
return ws.sendVboxDiscard(instance.instance);
}
function sendVboxAccept(group, index) {
return ws.sendVboxAccept(instance.instance, group, index);
}
function sendVboxCombine() {
return console.log('combine', combiner);
return ws.sendVboxDiscard(instance.instance);
}
function sendVboxReclaim(v) {
return console.log('reclaim', v);
return ws.sendVboxDiscard(instance.instance);
}
return {
instance,
combiner,
sendVboxAccept,
sendVboxDiscard,
sendVboxReclaim,
sendVboxCombine,
};
},
function receiveDispatch(dispatch, { combiner }) {
function addToCombiner(v) {
combiner.push(v);
if (combiner.length > 3) {
dispatch(actions.setCombiner([v]));
}
dispatch(actions.setCombiner(combiner));
}
return { addToCombiner };
}
);
module.exports = addState(Vbox);