PHP 8.2.30
Preview: clickHandler.ts Size: 994 B
/proc/thread-self/root/home/byroehnu/.trash/node_modules11/@tiptap/extension-link/src/helpers/clickHandler.ts

import { getAttributes } from '@tiptap/core'
import { MarkType } from '@tiptap/pm/model'
import { Plugin, PluginKey } from '@tiptap/pm/state'

type ClickHandlerOptions = {
  type: MarkType
}

export function clickHandler(options: ClickHandlerOptions): Plugin {
  return new Plugin({
    key: new PluginKey('handleClickLink'),
    props: {
      handleClick: (view, pos, event) => {
        if (event.button !== 0) {
          return false
        }

        const eventTarget = event.target as HTMLElement

        if (eventTarget.nodeName !== 'A') {
          return false
        }

        const attrs = getAttributes(view.state, options.type.name)
        const link = (event.target as HTMLLinkElement)

        const href = link?.href ?? attrs.href
        const target = link?.target ?? attrs.target

        if (link && href) {
          if (view.editable) {
            window.open(href, target)
          }

          return true
        }

        return false
      },
    },
  })
}

Directory Contents

Dirs: 0 × Files: 3

Name Size Perms Modified Actions
4.00 KB lrw-r--r-- 2026-02-28 00:28:08
Edit Download
994 B lrw-r--r-- 2026-02-28 00:28:18
Edit Download
1.21 KB lrw-r--r-- 2026-02-28 00:28:32
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).