From 6dbfb3078590aa787bcb5fa63ee2ffc73a845c64 Mon Sep 17 00:00:00 2001 From: Mohammad Rasim Date: Fri, 28 Jul 2023 11:28:47 +0300 Subject: [PATCH] warn if user is using the deprecated renderLabel --- packages/extension-mention/src/mention.ts | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/extension-mention/src/mention.ts b/packages/extension-mention/src/mention.ts index 48e6e717660..a8813262404 100644 --- a/packages/extension-mention/src/mention.ts +++ b/packages/extension-mention/src/mention.ts @@ -6,7 +6,7 @@ import Suggestion, { SuggestionOptions } from '@tiptap/suggestion' export type MentionOptions = { HTMLAttributes: Record /** @deprecated use renderText and renderHTML instead */ - renderLabel: (props: { options: MentionOptions; node: ProseMirrorNode }) => string + renderLabel?: (props: { options: MentionOptions; node: ProseMirrorNode }) => string renderText: (props: { options: MentionOptions; node: ProseMirrorNode }) => string renderHTML: (props: { options: MentionOptions; node: ProseMirrorNode }) => DOMOutputSpec suggestion: Omit @@ -20,9 +20,6 @@ export const Mention = Node.create({ addOptions() { return { HTMLAttributes: {}, - renderLabel({ options, node }) { - return `${options.suggestion.char}${node.attrs.label ?? node.attrs.id}` - }, renderText({ options, node }) { return `${options.suggestion.char}${node.attrs.label ?? node.attrs.id}` }, @@ -123,6 +120,17 @@ export const Mention = Node.create({ }, renderHTML({ node, HTMLAttributes }) { + if (this.options.renderLabel !== undefined) { + console.warn('renderLabel is deprecated use renderText and renderHTML instead') + return [ + 'span', + mergeAttributes({ 'data-type': this.name }, this.options.HTMLAttributes, HTMLAttributes), + this.options.renderLabel({ + options: this.options, + node, + }), + ] + } return [ 'span', mergeAttributes({ 'data-type': this.name }, this.options.HTMLAttributes, HTMLAttributes), @@ -134,6 +142,13 @@ export const Mention = Node.create({ }, renderText({ node }) { + if (this.options.renderLabel !== undefined) { + console.warn('renderLabel is deprecated use renderText and renderHTML instead') + return this.options.renderLabel({ + options: this.options, + node, + }) + } return this.options.renderText({ options: this.options, node,