// @flow import * as React from 'react'; import { Switch, Route } from 'react-router-dom'; import { observable } from 'mobx'; import { observer, inject } from 'mobx-react'; import { NewDocumentIcon } from 'outline-icons'; import DocumentsStore from 'stores/DocumentsStore'; import AuthStore from 'stores/AuthStore'; import NewDocumentMenu from 'menus/NewDocumentMenu'; import Actions, { Action } from 'components/Actions'; import CenteredContent from 'components/CenteredContent'; import DocumentList from 'components/DocumentList'; import PageTitle from 'components/PageTitle'; import Subheading from 'components/Subheading'; import Tabs from 'components/Tabs'; import Tab from 'components/Tab'; import { ListPlaceholder } from 'components/LoadingPlaceholder'; type Props = { documents: DocumentsStore, auth: AuthStore, }; @observer class Dashboard extends React.Component { @observable isLoaded: boolean = false; componentDidMount() { this.loadContent(); } loadContent = async () => { await Promise.all([ this.props.documents.fetchRecentlyModified({ limit: 15 }), this.props.documents.fetchRecentlyViewed({ limit: 15 }), ]); this.isLoaded = true; }; render() { const { documents, auth } = this.props; if (!auth.user) return; const hasRecentlyViewed = documents.recentlyViewed.length > 0; const hasRecentlyEdited = documents.recentlyEdited.length > 0; const owned = documents.owned(auth.user.id); const showContent = this.isLoaded || (hasRecentlyViewed && hasRecentlyEdited); return (

Home

Recently edited Recently viewed Created by me {showContent ? ( } /> ) : ( )}
); } } export default inject('documents', 'auth')(Dashboard);