mirror of
https://github.com/ueberdosis/tiptap.git
synced 2025-08-05 21:19:46 +08:00
Optionally delete full mention chip (#3341)
* Optionally delete full mention chip * Added documentation for deleteOnBackspace * rename all references of deleteOnBackspace to deleteTriggerWithBackspace
This commit is contained in:
parent
51c5e5fc5c
commit
ee645c1eca
@ -67,6 +67,16 @@ Mention.configure({
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
### deleteTriggerWithBackspace
|
||||
Toggle whether the suggestion character(s) should also be deleted on deletion of a mention node. Default is `false`.
|
||||
|
||||
```js
|
||||
Mention.configure({
|
||||
deleteTriggerWithBackspace: true
|
||||
})
|
||||
```
|
||||
|
||||
### suggestion
|
||||
[Read more](/api/utilities/suggestion)
|
||||
|
||||
|
@ -9,6 +9,7 @@ export type MentionOptions = {
|
||||
renderLabel?: (props: { options: MentionOptions; node: ProseMirrorNode }) => string
|
||||
renderText: (props: { options: MentionOptions; node: ProseMirrorNode }) => string
|
||||
renderHTML: (props: { options: MentionOptions; node: ProseMirrorNode }) => DOMOutputSpec
|
||||
deleteTriggerWithBackspace: boolean
|
||||
suggestion: Omit<SuggestionOptions, 'editor'>
|
||||
}
|
||||
|
||||
@ -23,6 +24,7 @@ export const Mention = Node.create<MentionOptions>({
|
||||
renderText({ options, node }) {
|
||||
return `${options.suggestion.char}${node.attrs.label ?? node.attrs.id}`
|
||||
},
|
||||
deleteTriggerWithBackspace: false,
|
||||
renderHTML({ options, node }) {
|
||||
return [
|
||||
'span',
|
||||
@ -177,7 +179,11 @@ export const Mention = Node.create<MentionOptions>({
|
||||
state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {
|
||||
if (node.type.name === this.name) {
|
||||
isMention = true
|
||||
tr.insertText(this.options.suggestion.char || '', pos, pos + node.nodeSize)
|
||||
tr.insertText(
|
||||
this.options.deleteTriggerWithBackspace ? '' : this.options.suggestion.char || '',
|
||||
pos,
|
||||
pos + node.nodeSize,
|
||||
)
|
||||
|
||||
return false
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user