diff --git a/etc/lime-elements.api.md b/etc/lime-elements.api.md index 7697a365e8..a98dbe7fbd 100644 --- a/etc/lime-elements.api.md +++ b/etc/lime-elements.api.md @@ -2413,6 +2413,8 @@ export interface TabPanelComponent { // @alpha (undocumented) export interface TextEditor { insert: (input: TextEditorNode | string) => void; + // (undocumented) + stopTrigger: () => void; } // @alpha (undocumented) diff --git a/src/components/text-editor/examples/text-editor-custom-triggers.tsx b/src/components/text-editor/examples/text-editor-custom-triggers.tsx index 8ac714bc02..199c596566 100644 --- a/src/components/text-editor/examples/text-editor-custom-triggers.tsx +++ b/src/components/text-editor/examples/text-editor-custom-triggers.tsx @@ -133,6 +133,7 @@ export class TextEditorCustomTriggersExample { if (event.key === ESCAPE) { this.isPickerOpen = false; + this.triggerFunction?.stopTrigger(); } }; diff --git a/src/components/text-editor/prosemirror-adapter/plugins/trigger/inserter.ts b/src/components/text-editor/prosemirror-adapter/plugins/trigger/inserter.ts index dc00efdb28..038038d897 100644 --- a/src/components/text-editor/prosemirror-adapter/plugins/trigger/inserter.ts +++ b/src/components/text-editor/prosemirror-adapter/plugins/trigger/inserter.ts @@ -38,6 +38,14 @@ export const inserterFactory = (view: EditorView): TextEditor => { transaction.setMeta('stopTrigger', true); dispatch(transaction); }, + stopTrigger: () => { + const { state, dispatch } = view; + + const transaction = state.tr; + transaction.setMeta('stopTrigger', true); + + dispatch(transaction); + }, }; }; diff --git a/src/components/text-editor/text-editor.types.ts b/src/components/text-editor/text-editor.types.ts index e61a06ada5..91f4c74d4e 100644 --- a/src/components/text-editor/text-editor.types.ts +++ b/src/components/text-editor/text-editor.types.ts @@ -59,6 +59,7 @@ export interface TextEditor { * */ insert: (input: TextEditorNode | string) => void; + stopTrigger: () => void; } /**