// const { connect } = require('preact-redux'); const preact = require('preact'); const { connect } = require('preact-redux'); const { errorToast, infoToast } = require('../utils'); const actions = require('./../actions'); const VERSION = process.env.npm_package_version; const addState = connect( function receiveState(state) { const { ws, account, instances, invite, } = state; function sendInstanceState(id) { ws.sendInstanceState(id); } function sendInstancePractice() { ws.sendInstancePractice(); } function sendInstanceQueue() { ws.sendInstanceQueue(); } function sendInstanceInvite() { ws.sendInstanceInvite(); } return { account, instances, invite, sendInstanceState, sendInstanceQueue, sendInstancePractice, sendInstanceInvite, }; }, function receiveDispatch(dispatch) { function setMtxActive(mtx) { dispatch(actions.setConstructRename(null)); dispatch(actions.setMtxActive(mtx)); return true; } function setNav(place) { return dispatch(actions.setNav(place)); } return { setMtxActive, setNav, }; } ); function Play(args) { const { account, instances, invite, sendInstanceState, sendInstanceQueue, sendInstancePractice, sendInstanceInvite, setNav, } = args; const inviteBtn = () => { if (!invite) { return (
Invite a Friend
); } function copyClick(e) { const link = `${document.location.origin}#join=${invite}`; const textArea = document.createElement('textarea', { id: '#clipboard' }); textArea.value = link; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { document.execCommand('copy'); infoToast('Invite link copied to clipboard.'); } catch (err) { console.error('link copy error', err); errorToast('Invite link copy error.'); } document.body.removeChild(textArea); return true; } return (
Click to Copy
); }; const subscription = account.subscribed ? : ; const list = () => { if (!instances.length) { return (
Matchmaking
{inviteBtn()}
Practice MNML
Join the Community
); } return (
Resume playing
); }; return (

v{VERSION}

{list()}

ยค {account.balance}

{subscription}
Join our Discord server to find opponents and talk to the devs.
Message @ntr or @mashy for some credits to get started.
Tutorial Playthrough on YouTube

If you enjoy the game you can support the development:
  • Invite people to play pvp games and grow the community.
  • Subscribe or purchase credits.
); } module.exports = addState(Play);