tiptap-vuetify
Version:
Vuetify WYSIWYG editor based on Tiptap.
27 lines (22 loc) • 843 B
text/typescript
import ExtensionActionRenderBtnOptionsInterface
from '~/extensions/actions/renders/btn/ExtensionActionRenderBtnOptionsInterface'
type OptionalOptionsType = 'onClick' | 'isActive'
export default class ExtensionActionRenderBtn {
options: ExtensionActionRenderBtnOptionsInterface
constructor (
options: Omit<ExtensionActionRenderBtnOptionsInterface, OptionalOptionsType> & Partial<
Pick<ExtensionActionRenderBtnOptionsInterface, OptionalOptionsType>
>
) {
const nativeExtensionName = options.nativeExtensionName!
this.options = {
onClick ({ context }) {
context.commands[nativeExtensionName](options.onClickOptions)
},
isActive ({ isActive }) {
return !!isActive[nativeExtensionName] && isActive[nativeExtensionName](options.isActiveOptions)
},
...options
}
}
}