// @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, Switch, Route, Redirect, } 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 Home from 'scenes/Home'; import Dashboard from 'scenes/Dashboard'; import Starred from 'scenes/Starred'; import Drafts from 'scenes/Drafts'; import Collection from 'scenes/Collection'; import Document from 'scenes/Document'; import Search from 'scenes/Search'; import Settings from 'scenes/Settings'; import Details from 'scenes/Settings/Details'; import People from 'scenes/Settings/People'; import Slack from 'scenes/Settings/Slack'; import Shares from 'scenes/Settings/Shares'; import Tokens from 'scenes/Settings/Tokens'; import Error404 from 'scenes/Error404'; import ErrorBoundary from 'components/ErrorBoundary'; import ScrollToTop from 'components/ScrollToTop'; import Layout from 'components/Layout'; import Auth from 'components/Auth'; import RouteSidebarHidden from 'components/RouteSidebarHidden'; import { matchDocumentSlug } from 'utils/routeHelpers'; let DevTools; if (__DEV__) { DevTools = require('mobx-react-devtools').default; // eslint-disable-line global-require } const notFoundSearch = () => ; const DocumentNew = () => ; const RedirectDocument = ({ match }: { match: Object }) => ( ); globalStyles(); 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'); });