const preact = require('preact'); const { connect } = require('preact-redux'); const { errorToast, infoToast } = require('../utils'); const AccountBox = require('./account.box'); const addState = connect( function receiveState(state) { const { ws, instances, invite, } = state; function sendInstanceState(id) { ws.sendInstanceState(id); } function sendInstancePractice() { ws.sendInstancePractice(); } function sendInstanceQueue() { ws.sendInstanceQueue(); } function sendInstanceInvite() { ws.sendInstanceInvite(); } return { instances, invite, sendInstanceState, sendInstanceQueue, sendInstancePractice, sendInstanceInvite, }; } ); function JoinButtons(args) { const { instances, invite, sendInstanceState, sendInstanceQueue, sendInstancePractice, sendInstanceInvite, } = args; const discordBtn = ( window.open('https://discord.gg/YJJgurM') }> ); if (instances.length) { return ( ); } const inviteBtn = () => { if (!invite) { return ( sendInstanceInvite()} type="submit"> Invite ); } 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 ( Copy Link ); }; return ( ); } module.exports = addState(JoinButtons);