From a4c905df4e1cd04efbcdb4780108fab665771d9f Mon Sep 17 00:00:00 2001 From: Connor Turland Date: Tue, 19 Sep 2017 09:04:21 -0400 Subject: [PATCH] move each li into its own function --- frontend/src/components/common/ContextMenu.js | 216 +++++++++++------- 1 file changed, 138 insertions(+), 78 deletions(-) diff --git a/frontend/src/components/common/ContextMenu.js b/frontend/src/components/common/ContextMenu.js index 273672b5..b5431c56 100644 --- a/frontend/src/components/common/ContextMenu.js +++ b/frontend/src/components/common/ContextMenu.js @@ -76,96 +76,156 @@ class ContextMenu extends Component { } } - render () { - const { contextNode, contextPos, contextOnMetacodeSelect, metacodeSets, - contextDelete, contextHide, contextRemove, contextCenterOn, - contextPopoutTopic, contextSiblingsData, contextFetchSiblings, - currentUser, contextPopulateSiblings, contextFetchingSiblingsData, - topicId, map, mapId, contextUpdatePermissions } = this.props + hide = () => { + const { contextHide } = this.props + return
  • +
    Hide until refresh +
    Ctrl+H
    +
  • + } + remove = () => { + const { contextRemove, map, currentUser } = this.props const canEditMap = map && map.authorizeToEdit(currentUser) - const positionData = this.getPositionData() - const style = Object.assign({}, {position: 'absolute'}, positionData.pos) + if (!canEditMap) { + return null + } + return
  • +
    Remove from map +
    Ctrl+M
    +
  • + } + + delete = () => { + const { contextDelete, map, currentUser } = this.props + const canEditMap = map && map.authorizeToEdit(currentUser) + if (!canEditMap) { + return null + } + return
  • +
    Delete +
    Ctrl+D
    +
  • + } + + center = () => { + const { contextCenterOn, contextNode, topicId } = this.props + if (!(contextNode && topicId)) { + return null + } + return
  • contextCenterOn(contextNode.id)}> +
    Center this topic +
    Alt+E
    +
  • + } + + popout = () => { + const { contextPopoutTopic, contextNode } = this.props + if (!contextNode) { + return null + } + return
  • contextPopoutTopic(contextNode.id)}> +
    Open in new tab +
  • + } + + permission = () => { + const { currentUser, contextUpdatePermissions } = this.props + if (!currentUser) { + return null + } + return
  • +
    Change permissions +
      +
    • contextUpdatePermissions('commons')}> +
      commons +
    • +
    • contextUpdatePermissions('public')}> +
      public +
    • +
    • contextUpdatePermissions('private')}> +
      private +
    • +
    +
    +
  • + } + + metacode = () => { + const { metacodeSets, contextOnMetacodeSelect, + currentUser, contextNode } = this.props + if (!currentUser) { + return null + } + return
  • +
    Change metacode +
    + { + contextOnMetacodeSelect(contextNode && contextNode.id, id) + }} + metacodeSets={metacodeSets} /> +
    +
    +
  • + } + + siblings = () => { + const { contextPopulateSiblings, contextFetchSiblings, + contextSiblingsData, contextFetchingSiblingsData, + topicId, contextNode } = this.props const populateSiblings = () => { if (!this.state.populateSiblingsSent) { contextPopulateSiblings(contextNode.id) this.setState({populateSiblingsSent: true}) } } + if (!(contextNode && topicId)) { + return null + } + return
  • +
    Reveal siblings +
      +
    • contextFetchSiblings(contextNode)}>All +
      Alt+R
      +
    • + {contextSiblingsData && Object.keys(contextSiblingsData).map(key => { + return
    • contextFetchSiblings(contextNode, key)}> + {contextSiblingsData[key]} +
    • + })} + {contextFetchingSiblingsData &&
    • loading...
    • } +
    +
    +
  • + } + + render () { + const { contextNode, currentUser, topicId } = this.props + const positionData = this.getPositionData() + const style = Object.assign({}, {position: 'absolute'}, positionData.pos) + const showSpacer = currentUser || (contextNode && topicId) return
    }