// @flow import * as React from 'react'; import { render } from 'react-dom'; import { Provider } from 'mobx-react'; import { ThemeProvider } from 'styled-components'; import { BrowserRouter as Router } from 'react-router-dom'; import stores from 'stores'; import theme from 'shared/styles/theme'; import GlobalStyles from 'shared/styles/globals'; import 'shared/styles/prism.css'; import ErrorBoundary from 'components/ErrorBoundary'; import ScrollToTop from 'components/ScrollToTop'; import ScrollToAnchor from 'components/ScrollToAnchor'; import Toasts from 'components/Toasts'; import Routes from './routes'; let DevTools; if (__DEV__) { DevTools = require('mobx-react-devtools').default; // eslint-disable-line global-require } const element = document.getElementById('root'); if (element) { render( {DevTools && } , element ); } window.addEventListener('load', async () => { // installation does not use Google Analytics, or tracking is blocked on client // no point loading the rest of the analytics bundles if (!process.env.GOOGLE_ANALYTICS_ID || !window.ga) return; // https://github.com/googleanalytics/autotrack/issues/137#issuecomment-305890099 await import('autotrack/autotrack.js'); window.ga('require', 'outboundLinkTracker'); window.ga('require', 'urlChangeTracker'); });