UNPKG

lexical-vue

Version:

An extensible Vue 3 web text-editor based on Lexical.

42 lines (41 loc) 1.38 kB
import { useDefaults } from "vue-vine"; import { defineComponent, toRefs, watchEffect } from "vue"; import { namedSignals } from "@lexical/extension"; import { registerClickableLink } from "@lexical/link"; import { useLexicalComposer } from "./LexicalComposer.vine.js"; const ClickableLinkPlugin = (()=>{ const __vine = defineComponent({ name: 'ClickableLinkPlugin', props: { newTab: { type: Boolean, default: true }, disabled: { type: Boolean, default: false } }, setup (__props, param) { let { expose: __expose } = param; __expose(); const props = useDefaults(__props, { newTab: ()=>true, disabled: ()=>false }); const { newTab, disabled } = toRefs(props); const editor = useLexicalComposer(); watchEffect((onInvalidate)=>{ const unregister = registerClickableLink(editor, namedSignals({ disabled: props.disabled, newTab: props.newTab })); onInvalidate(unregister); }); return (_ctx, _cache)=>null; } }); __vine.__vue_vine = true; return __vine; })(); export { ClickableLinkPlugin };