// @flow import * as React from 'react'; import { observer } from 'mobx-react'; import { observable } from 'mobx'; import { CollectionIcon } from 'outline-icons'; import styled from 'styled-components'; import Collection from 'models/Collection'; import Document from 'models/Document'; import CollectionMenu from 'menus/CollectionMenu'; import UiStore from 'stores/UiStore'; import SidebarLink from './SidebarLink'; import DocumentLink from './DocumentLink'; import DropToImport from 'components/DropToImport'; import Flex from 'shared/components/Flex'; type Props = { history: Object, collection: Collection, ui: UiStore, activeDocument: ?Document, prefetchDocument: (id: string) => Promise, }; @observer class CollectionLink extends React.Component { @observable menuOpen = false; render() { const { history, collection, activeDocument, prefetchDocument, ui, } = this.props; const expanded = collection.id === ui.activeCollectionId; return ( } iconColor={collection.color} expand={expanded} hideExpandToggle menuOpen={this.menuOpen} expandedContent={ {collection.documents.map(document => ( ))} } menu={ (this.menuOpen = true)} onClose={() => (this.menuOpen = false)} /> } > {collection.name} ); } } const CollectionName = styled(Flex)` padding: 0 0 4px; `; const CollectionChildren = styled(Flex)` margin-top: -4px; margin-left: 36px; padding-bottom: 4px; `; export default CollectionLink;