UNPKG

torus-blockstack-demo

Version:

StarkCrate Application w/ Torus compatibility. Turned a blockstack application sample to also have Torus login compatibility as well

63 lines (55 loc) 1.53 kB
import React, { Component, Link } from 'react'; import Profile from './Profile.jsx'; import Signin from './Signin.jsx'; import { UserSession, AppConfig } from 'blockstack'; import { Switch, Route } from 'react-router-dom' const appConfig = new AppConfig(['store_write', 'publish_data']) const userSession = new UserSession({ appConfig: appConfig }) export default class App extends Component { constructor(props) { super(props); } handleSignIn(e) { e.preventDefault(); userSession.redirectToSignIn(); } handleSignOut(e) { e.preventDefault(); userSession.signUserOut(window.location.origin); } render() { return ( <div className="site-wrapper"> <div className="site-wrapper-inner"> { !userSession.isUserSignedIn() ? <Signin userSession={userSession} handleSignIn={ this.handleSignIn } /> : <Switch> <Route path='/:username?' render={ routeProps => <Profile userSession={userSession} handleSignOut={ this.handleSignOut } {...routeProps} /> } /> </Switch> } </div> </div> ); } componentWillMount() { if (userSession.isSignInPending()) { userSession.handlePendingSignIn().then((userData) => { window.location = window.location.origin; }); } } }