From 3d6cd4f83e3087efb1437a05a980e5b1642a5407 Mon Sep 17 00:00:00 2001 From: VipinDevelops Date: Tue, 26 Aug 2025 15:30:37 +0530 Subject: [PATCH 1/3] fix: emoji modal for touch device --- packages/editor/src/core/extensions/emoji/suggestion.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/editor/src/core/extensions/emoji/suggestion.ts b/packages/editor/src/core/extensions/emoji/suggestion.ts index a0aa9168806..868c325abb3 100644 --- a/packages/editor/src/core/extensions/emoji/suggestion.ts +++ b/packages/editor/src/core/extensions/emoji/suggestion.ts @@ -52,7 +52,8 @@ const emojiSuggestion: EmojiOptions["suggestion"] = { return { onStart: (props: SuggestionProps): void => { - if (!props.clientRect) return; + const isTouchDevice = !!getExtensionStorage(editor, CORE_EXTENSIONS.UTILITY).isTouchDevice; + if (!props.clientRect || isTouchDevice) return; editor = props.editor; From 023d55fb933af3de81d0048ad73799c9edf17bf9 Mon Sep 17 00:00:00 2001 From: VipinDevelops Date: Tue, 26 Aug 2025 15:53:14 +0530 Subject: [PATCH 2/3] refactor: editor from props --- packages/editor/src/core/extensions/emoji/suggestion.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/editor/src/core/extensions/emoji/suggestion.ts b/packages/editor/src/core/extensions/emoji/suggestion.ts index 868c325abb3..7bc472a9827 100644 --- a/packages/editor/src/core/extensions/emoji/suggestion.ts +++ b/packages/editor/src/core/extensions/emoji/suggestion.ts @@ -52,7 +52,7 @@ const emojiSuggestion: EmojiOptions["suggestion"] = { return { onStart: (props: SuggestionProps): void => { - const isTouchDevice = !!getExtensionStorage(editor, CORE_EXTENSIONS.UTILITY).isTouchDevice; + const isTouchDevice = !!getExtensionStorage(props.editor, CORE_EXTENSIONS.UTILITY).isTouchDevice; if (!props.clientRect || isTouchDevice) return; editor = props.editor; From 45f4135a62ed708412764770ba0e7ced613946ad Mon Sep 17 00:00:00 2001 From: VipinDevelops Date: Tue, 26 Aug 2025 16:37:40 +0530 Subject: [PATCH 3/3] fix : update is touch device plugin --- packages/editor/src/core/extensions/emoji/emoji.ts | 6 ++++++ packages/editor/src/core/extensions/emoji/extension.ts | 4 ++-- packages/editor/src/core/extensions/emoji/suggestion.ts | 7 ++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/editor/src/core/extensions/emoji/emoji.ts b/packages/editor/src/core/extensions/emoji/emoji.ts index 4ad20136672..e2fba3fefdd 100644 --- a/packages/editor/src/core/extensions/emoji/emoji.ts +++ b/packages/editor/src/core/extensions/emoji/emoji.ts @@ -16,7 +16,9 @@ import Suggestion, { SuggestionOptions } from "@tiptap/suggestion"; import emojiRegex from "emoji-regex"; import { isEmojiSupported } from "is-emoji-supported"; // helpers +import { CORE_EXTENSIONS } from "@/constants/extension"; import { customFindSuggestionMatch } from "@/helpers/find-suggestion-match"; +import { getExtensionStorage } from "@/helpers/get-extension-storage"; declare module "@tiptap/core" { interface Commands { @@ -342,6 +344,10 @@ export const Emoji = Node.create({ }, addProseMirrorPlugins() { + const isTouchDevice = !!getExtensionStorage(this.editor, CORE_EXTENSIONS.UTILITY).isTouchDevice; + if (isTouchDevice) { + return []; + } return [ Suggestion({ editor: this.editor, diff --git a/packages/editor/src/core/extensions/emoji/extension.ts b/packages/editor/src/core/extensions/emoji/extension.ts index 7e35038cc95..e9f715b31c7 100644 --- a/packages/editor/src/core/extensions/emoji/extension.ts +++ b/packages/editor/src/core/extensions/emoji/extension.ts @@ -3,7 +3,7 @@ import { gitHubEmojis, shortcodeToEmoji } from "@tiptap/extension-emoji"; import { MarkdownSerializerState } from "@tiptap/pm/markdown"; import { Node as ProseMirrorNode } from "@tiptap/pm/model"; import { Emoji } from "./emoji"; -import suggestion from "./suggestion"; +import { emojiSuggestion } from "./suggestion"; export const EmojiExtension = Emoji.extend({ addStorage() { @@ -25,6 +25,6 @@ export const EmojiExtension = Emoji.extend({ }, }).configure({ emojis: gitHubEmojis, - suggestion: suggestion, + suggestion: emojiSuggestion, enableEmoticons: true, }); diff --git a/packages/editor/src/core/extensions/emoji/suggestion.ts b/packages/editor/src/core/extensions/emoji/suggestion.ts index 7bc472a9827..ca0ab49ac7e 100644 --- a/packages/editor/src/core/extensions/emoji/suggestion.ts +++ b/packages/editor/src/core/extensions/emoji/suggestion.ts @@ -10,7 +10,7 @@ import { EmojiItem, EmojiList, EmojiListRef } from "./components/emojis-list"; const DEFAULT_EMOJIS = ["+1", "-1", "smile", "orange_heart", "eyes"]; -const emojiSuggestion: EmojiOptions["suggestion"] = { +export const emojiSuggestion: EmojiOptions["suggestion"] = { items: ({ editor, query }: { editor: Editor; query: string }): EmojiItem[] => { const { emojis } = getExtensionStorage(editor, CORE_EXTENSIONS.EMOJI); const { isSupported } = getExtensionStorage(editor, CORE_EXTENSIONS.EMOJI); @@ -52,8 +52,7 @@ const emojiSuggestion: EmojiOptions["suggestion"] = { return { onStart: (props: SuggestionProps): void => { - const isTouchDevice = !!getExtensionStorage(props.editor, CORE_EXTENSIONS.UTILITY).isTouchDevice; - if (!props.clientRect || isTouchDevice) return; + if (!props.clientRect) return; editor = props.editor; @@ -117,5 +116,3 @@ const emojiSuggestion: EmojiOptions["suggestion"] = { }; }, }; - -export default emojiSuggestion;