const { connect } = require('preact-redux'); const preact = require('preact'); const { stringSort } = require('./../utils'); const { ConstructAvatar } = require('./construct'); const actions = require('./../actions'); const InstanceCreateForm = require('./instance.create.buttons'); const Inventory = require('./inventory'); const idSort = stringSort('id'); const addState = connect( function receiveState(state) { const { ws, constructs, constructRename, team, instanceList, mtxActive, } = state; function sendInstanceJoin(instance) { if (team.length) { return ws.sendInstanceJoin(instance.id, team); } return false; } function sendInstanceList() { return ws.sendInstanceList(); } function sendConstructAvatarReroll(id) { console.log('using', mtxActive, 'on', id); return ws.sendMtxApply(id, mtxActive, ''); } function sendConstructRename(id, name) { ws.sendMtxApply(id, 'Rename', name); } return { constructs, instanceList, mtxActive, constructRename, team, sendConstructRename, sendInstanceJoin, sendInstanceList, sendConstructAvatarReroll, }; }, function receiveDispatch(dispatch) { function setConstructRename(id) { dispatch(actions.setConstructRename(id)); } function clearMtxRename() { dispatch(actions.setConstructRename(null)); dispatch(actions.setMtxActive(null)); } return { clearMtxRename, setConstructRename, }; } ); function List(args) { const { team, constructs, constructRename, clearMtxRename, setConstructRename, sendConstructRename, sendInstanceJoin, sendInstanceList, instanceList, mtxActive, sendConstructAvatarReroll, } = args; function listElements() { if (!instanceList) return
...
; const instancePanels = instanceList.map(instance => { function instanceClick() { return sendInstanceJoin(instance); } return ( {instance.name} ); }); return ( ); } const constructPanels = constructs .filter(c => team.includes(c.id)) .sort(idSort) .map(construct => { const constructName = constructRename === construct.id ? :

{construct.name}

; const confirm = constructRename === construct.id ? : false; const cancel = constructRename === construct.id ? : false; return (
{ if (!mtxActive) return false; if (mtxActive === 'Rename') return setConstructRename(construct.id); return sendConstructAvatarReroll(construct.id); }} class="menu-construct" > {constructName} {confirm} {cancel}
); }); return (
{constructPanels}
{listElements()}
); } module.exports = addState(List);