const { connect } = require('preact-redux'); const preact = require('preact'); const { Elements, injectStripe } = require('react-stripe-elements'); const { saw } = require('./shapes'); const { postData } = require('./../utils'); const actions = require('../actions'); function pingColour(ping) { if (ping < 100) return 'forestgreen'; if (ping < 200) return 'yellow'; return 'red'; } function BitsBtn(args) { const { stripe, account, } = args; function subscribeClick(e) { stripe.redirectToCheckout({ items: [{plan: 'plan_FGmRwawcOJJ7Nv', quantity: 1}], successUrl: 'http://localhost/api/payments/success', cancelUrl: 'http://localhost/api/payments/cancel', clientReferenceId: account.id }); } function bitsClick(e) { stripe.redirectToCheckout({ items: [{sku: 'sku_FHUfNEhWQaVDaT', quantity: 1}], successUrl: 'http://localhost/payments/success', cancelUrl: 'http://localhost/payments/cancel', clientReferenceId: account.id }); } const subscription = account.subscribed ?

Subscribed

: ; return (
{subscription}
); } const StripeBitsBtn = injectStripe(BitsBtn); const addState = connect( function receiveState(state) { const { account, ping, } = state; function logout() { postData('/logout').then(() => window.location.reload(true)); } return { account, ping, logout, }; }, function receiveDispatch(dispatch) { function selectConstructs() { return dispatch(actions.setNav('team')); } return { selectConstructs, }; } ); function AccountStatus(args) { const { account, ping, logout, selectConstructs, } = args; if (!account) return null; return (
{saw(pingColour(ping))}
{ping}ms

{`ยค${account.balance}`}

); } module.exports = addState(AccountStatus);