61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
const { connect } = require('preact-redux');
|
|
|
|
const Menu = require('./menu.component');
|
|
const actions = require('./../actions');
|
|
|
|
const addState = connect(
|
|
function receiveState(state) {
|
|
const { ws, cryps, selectedCryps, instances, account } = state;
|
|
|
|
function sendInstanceJoin(instance) {
|
|
if (selectedCryps.length) {
|
|
return ws.sendInstanceJoin(instance.id, selectedCryps);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function sendPlayerMmCrypsSet() {
|
|
if (selectedCryps.length) {
|
|
return ws.sendPlayerMmCrypsSet(selectedCryps);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function sendCrypSpawn(name) {
|
|
return ws.sendCrypSpawn(name);
|
|
}
|
|
|
|
function sendInstanceState(instance) {
|
|
return ws.sendInstanceState(instance.id);
|
|
}
|
|
|
|
function sendInstanceList() {
|
|
return ws.sendAccountInstances();
|
|
}
|
|
|
|
return {
|
|
account,
|
|
cryps,
|
|
selectedCryps,
|
|
sendInstanceJoin,
|
|
sendInstanceState,
|
|
sendInstanceList,
|
|
sendCrypSpawn,
|
|
sendPlayerMmCrypsSet,
|
|
instances,
|
|
};
|
|
},
|
|
|
|
function receiveDispatch(dispatch) {
|
|
function setSelectedCryps(crypIds) {
|
|
dispatch(actions.setSelectedCryps(crypIds));
|
|
}
|
|
|
|
return {
|
|
setSelectedCryps,
|
|
};
|
|
}
|
|
);
|
|
|
|
module.exports = addState(Menu);
|