// 注册交互
const useGrapheBehavior = (G6) => {
  const behaviorList = ['drag-canvas', 'zoom-canvas']
  // 配置点击选择
  // const clickSelect = {
  //   type: 'click-select',
  //   multiple: false,
  //   selectNode: true,
  //   selectEdge: false,
  //   selectCombo: false
  // }
  // behaviorList.push(clickSelect)

  // 自定义交互 - 鼠标悬浮提示节点
  G6.registerBehavior('tips-hover', {
    getEvents() {
      return {
        'tipsNode:mouseover': 'hoverNode',
        'tipsNode:mouseout': 'hoverNodeOut'
      }
    },
    hoverNode(evt) {
      evt.currentTarget.updateItem(
        evt.item,
        {
          tipsHover: true
        },
        false
      )
    },
    hoverNodeOut(evt) {
      evt.currentTarget.updateItem(
        evt.item,
        {
          tipsHover: false
        },
        false
      )
    }
  })
  // 自定义交互 - 鼠标悬浮内容节点
  G6.registerBehavior('content-hover', {
    getEvents() {
      return {
        'contentNode:mouseover': 'hoverNode',
        'contentNode:mouseout': 'hoverNodeOut'
      }
    },
    hoverNode(evt) {
      evt.currentTarget.updateItem(
        evt.item,
        {
          contentHover: true
        },
        false
      )
    },
    hoverNodeOut(evt) {
      evt.currentTarget.updateItem(
        evt.item,
        {
          contentHover: false
        },
        false
      )
    }
  })

  behaviorList.push('tips-hover', 'content-hover')

  return {
    behaviorList
  }
}

export default useGrapheBehavior
