// @flow import React from 'react'; import { render } from 'react-dom'; import { Provider } from 'mobx-react'; import { BrowserRouter as Router, Switch, Route, Redirect, } from 'react-router-dom'; import { Flex } from 'reflexbox'; import stores from 'stores'; import DocumentsStore from 'stores/DocumentsStore'; import CollectionsStore from 'stores/CollectionsStore'; import 'normalize.css/normalize.css'; import 'styles/base.scss'; import 'styles/fonts.css'; import 'styles/transitions.scss'; import 'styles/prism-tomorrow.scss'; import 'styles/hljs-github-gist.scss'; import Home from 'scenes/Home'; import Dashboard from 'scenes/Dashboard'; import Starred from 'scenes/Starred'; import Collection from 'scenes/Collection'; import Document from 'scenes/Document'; import Search from 'scenes/Search'; import Settings from 'scenes/Settings'; import SlackAuth from 'scenes/SlackAuth'; import Flatpage from 'scenes/Flatpage'; import ErrorAuth from 'scenes/ErrorAuth'; import Error404 from 'scenes/Error404'; import ScrollToTop from 'components/ScrollToTop'; import Layout from 'components/Layout'; import flatpages from 'static/flatpages'; let DevTools; if (__DEV__) { DevTools = require('mobx-react-devtools').default; // eslint-disable-line global-require } let authenticatedStores; type AuthProps = { children?: React.Element, }; const Auth = ({ children }: AuthProps) => { if (stores.auth.authenticated && stores.auth.team) { // Only initialize stores once. Kept in global scope // because otherwise they will get overriden on route // change if (!authenticatedStores) { // Stores for authenticated user const user = stores.auth.getUserStore(); authenticatedStores = { user, documents: new DocumentsStore(), collections: new CollectionsStore({ teamId: user.team.id, }), }; authenticatedStores.collections.fetchAll(); } return ( {children} ); } else { return ; } }; const notFoundSearch = () => ; const KeyboardShortcuts = () => ( ); const Api = () => ; const DocumentNew = () => ; const DocumentNewChild = () => ; render(
{DevTools && }
, document.getElementById('root') ); window.authenticatedStores = authenticatedStores;