import { message } from 'ant-design-vue'
import { Directive, onUnmounted, DirectiveBinding } from 'vue'

export const keyboard: Directive = {
  mounted (el: HTMLDivElement, binding: DirectiveBinding) {
    const key = binding.arg
    console.log('key:', el, binding)

    const handleKeyPress = (event) => {
      console.log(event)

      if (event.key === key) {
        binding.value() // 执行绑定的方法
      }
    }

    el.addEventListener('keydown', () => {
      console.log('keydown')
    })

    el.addEventListener('keyup', () => {
      console.log('keyup')
    })

    el.addEventListener('keypress', handleKeyPress)

    // 在组件卸载时移除事件监听器
    onUnmounted(() => {
      el.removeEventListener('keypress', handleKeyPress)
    })
  }

}

export const copy = {
  mounted (el: HTMLElement, binding: DirectiveBinding) {
    el.addEventListener('click', () => {
      const inputValue = document.createElement('input')
      document.body.appendChild(inputValue)
      inputValue.value = el.innerHTML
      inputValue.select()
      document.execCommand('copy')
      message.success('复制成功')
      document.body.removeChild(inputValue)
    })

    onUnmounted(() => {
      el.removeEventListener('click', () => {})
    })
  }
}
