// @flow import * as React from 'react'; import { observer } from 'mobx-react'; import styled from 'styled-components'; import Document from 'models/Document'; import SidebarLink from './SidebarLink'; import DropToImport from 'components/DropToImport'; import Flex from 'shared/components/Flex'; import { type NavigationNode } from 'types'; type Props = { document: NavigationNode, history: Object, activeDocument: ?Document, activeDocumentRef?: (?HTMLElement) => *, prefetchDocument: (documentId: string) => Promise, depth: number, }; @observer class DocumentLink extends React.Component { handleMouseEnter = (ev: SyntheticEvent<*>) => { const { document, prefetchDocument } = this.props; ev.stopPropagation(); ev.preventDefault(); prefetchDocument(document.id); }; render() { const { document, activeDocument, activeDocumentRef, prefetchDocument, depth, history, } = this.props; const isActiveDocument = activeDocument && activeDocument.id === document.id; const showChildren = !!( activeDocument && (activeDocument.pathToDocument .map(entry => entry.id) .includes(document.id) || isActiveDocument) ); return ( {document.children.map(childDocument => ( ))} ) : ( undefined ) } > {document.title} ); } } const DocumentChildren = styled(Flex)` margin-top: -4px; margin-left: 12px; `; export default DocumentLink;