import * as React from 'react' import { render } from 'react-dom' import { Provider, connect } from 'react-redux' import { Store } from 'react-chrome-redux' import { accessToken } from './modules/auth/selectors' import * as PopupActions from './modules/popup/actions' import PopUp from './popup/popup' import Login from './popup/Login' import Raven from './utils/sentry' import '../css/popup.styl' window.onerror = (messageOrEvent, source, lineno, colno, error) => { Raven.captureException(error) } (window as any).onunhandledrejection = (error: PromiseRejectionEvent) => { console.log('error', error.reason) Raven.captureException(error.reason) } const store = new Store({ portName: 'DRIFT', // communication port name }) interface PopupProps { accessToken: string } (window as any).store = store const Popup = ({ accessToken }: PopupProps): JSX.Element => { return ( accessToken ? : ) } const mapStateToProps = (state: any) => { return { accessToken: accessToken(state), } } const ConnectedPopup = connect(mapStateToProps)(Popup) store.ready().then(() => { store.dispatch(PopupActions.popupOpen()) render(( ), window.document.getElementById('app-container')) })