// @flow import { observable } from "mobx"; import { observer } from "mobx-react"; import * as React from "react"; import UiStore from "stores/UiStore"; import Collection from "models/Collection"; import Document from "models/Document"; import CollectionIcon from "components/CollectionIcon"; import DropToImport from "components/DropToImport"; import DocumentLink from "./DocumentLink"; import EditableTitle from "./EditableTitle"; import SidebarLink from "./SidebarLink"; import CollectionMenu from "menus/CollectionMenu"; type Props = {| collection: Collection, ui: UiStore, canUpdate: boolean, activeDocument: ?Document, prefetchDocument: (id: string) => Promise, |}; @observer class CollectionLink extends React.Component { @observable menuOpen = false; handleTitleChange = async (name: string) => { await this.props.collection.save({ name }); }; render() { const { collection, activeDocument, prefetchDocument, canUpdate, ui, } = this.props; const expanded = collection.id === ui.activeCollectionId; return ( <> } iconColor={collection.color} expanded={expanded} menuOpen={this.menuOpen} label={ } exact={false} menu={ (this.menuOpen = true)} onClose={() => (this.menuOpen = false)} /> } > {expanded && collection.documents.map((node) => ( ))} ); } } export default CollectionLink;